728x90

가비지컬렉터 3

[Java] Java의 메모리 관리(2)

이전 Java Memory 영역에 대한 설명에 이어 참조 타입과 GC의 동작에 대해 알아보자! 🙋‍♂️ 이전 포스팅 : https://dev-jy.tistory.com/56 [Java] Java의 메모리 관리(1) Java의 Memory 영역 Java 프로그램이 실행되면 JVM(Java Virtual Machine)은 OS로부터 메모리를 할당받고, 그 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. JVM의 메모리 공간(Runtime Data Area)은 크게 M dev-jy.tistory.com 아래의 Memory 구조 그림을 자세히 보면, Heap에서 객체에 대한 참조를 나타내는 화살표가 다르게 생긴것을 알 수 있다.😶‍🌫️ Java에서는 Strong Reference, Weak Referenc..

🌱Java | Spring 2022.07.31

[Java] Java의 메모리 관리(1)

Java의 Memory 영역 Java 프로그램이 실행되면 JVM(Java Virtual Machine)은 OS로부터 메모리를 할당받고, 그 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. JVM의 메모리 공간(Runtime Data Area)은 크게 Method(Static) 영역, Stack 영역, Heap 영역으로 구분되고 Data Type에 따라 각 영역에 나누어 할당 된다. 컴퓨터의 메모리는 사용 가능한 공간이 한정되어 있기 때문에 어떻게 관리하느냐에 따라 프로그램의 성능이 좌우된다. 따라서 같은 기능의 프로그램이라 하더라도 메모리 관리에 따라 성능 차이가 크게 나타난다. 따라서 Java Application에서 메모리를 효율적으로 사용하기 위해 메모리 구조와 특징, GC의 동작 방식에 대해..

🌱Java | Spring 2022.07.24

[Python] Python의 메모리 관리

파이썬에서는 모든 것이 객체이고, 동적 메모리 할당이 파이썬 메모리 관리의 기초이다. 동적 메모리 할당이랑 런타임 시 메모리가 할당되는 것으로 객체가 더 이상 필요하지 않으면 파이썬 메모리 관리자가 자동으로 객체에서 메모리를 회수한다. 메모리 관리는 reference counting과 generational garbage collection 두 가지 방법으로 이루어 진다. Reference Counting 파이썬에서는 객체를 만들 때마다 객체의 유형과 reference count를 private heap에 생성한다. 기본적으로 파이썬 객체의 reference count는 객체가 참조될 때마다 증가하고 객체의 참조가 해제될 때 감소하는 방식으로 작동하고, 이때 reference count가 0이 되면 객체..

🐍Python | Django 2022.05.03
728x90