본문 바로가기

프로그래밍언어15

parallel garbage collection parallel gc은 멀티 스레드 기반으로 진행하며 serial gc의 단점인 대규모 애플리케이션에서 gc로 인한 STW가 길어지므로 서비스를 제대로 할 수 없다는 단점이 있다. 이 단점을 멀티 스레드를 활용해 GC를 진행해서 상대적으로 짧은 STW 를 가져가므로 이점이 있다. 단순 serial gc를 멀티 스레드로 진행한 것이 parallel gc. 다음편은 java8 이하 버전의 oracle jvm과 java9 이상 버전의 oracle jvm 과 g1gc를 다루어보겠다. 2023. 4. 13.
serial garbage collection serial gc는 단일 스레드로 동작하는 gc 알고리즘이다. 단일 스레드로 동작하므로 구현하기 가장 쉬운 기초적인 알고리즘이며 앞으로 공부할 parallel gc, g1gc, cms gc와 같은 알고리즘을 왜 공부하고 사용해야하는지를 이해하기에 필수 불가결한 알고리즘이다. CPU 코어가 1개인 컴퓨터에서 주로 사용하며 실무에서 사용하는 경우는 없다. 동작 과정. Mark & Sweep & Compact 0. mark 과정 객체에 도달이 가능하지, 불가능한지 판별하는 작업이다. mark bit를 활용하여 마킹하며 serial gc의 과정은 STW 작업이기 때문에 애플리케이션이 중지된다. 1. young gc 첫번째 eden 영역에서 참조하지 않는 객체들을 지우고 survivor 영역으로 넘긴다. surv.. 2023. 4. 13.
Red-Black tree ( 레드-블랙 트리 ) 레드 블랙 트리가 나온 이유 Red-Black tree 는 이진 검색 트리를 기반으로 한 자료구조이다.이진 검색 트리는 한쪽으로 치우쳐 질 경우 검색에서의 시간 복잡도가 O(N)으로 증가하는 문제가 있다. 이를 해결하기 위한 것이 레드-블랙 트리이다. 레드 블랙 트리의 조건 각 노드는 자료구조의 이름에서 알 수 있듯이 검은색, 빨간색으로 표기되고 다음과 같은 조건을 만족한다. 1. 루트 노드는 검은색이다. 2. 모든 리프 노드들은 검은색이다. 3. 빨간색 노드의 자식은 검은색이다. ( 빨간색 노드가 연속으로 나올 수 없다. ) 4. 리프 노드에서 루트 노드까지 가는 경로에서 만나는 검은색 노드의 개수는 같다. 레드 블랙 트리의 장점 레드 블랙 트리는 리프 노드까지 경로의 노드 색을 제한함으로써 리프 노드.. 2023. 4. 12.
JAVA 참조 유형과 관련된 자료구조 Strong, Soft, Weak, Phantom 순으로 설명하며 관련된 WeakMap자료구조를 설명한다. 1. Strong reference ( 강한 참조 )란? 우리가 일반적으로 User a = new User(); 방식으로 선언하는 방식이 Strong reference이다. a라는 변수가 참조하는 값이 존재하므로 GC대상이 되지 않는다. GC 대상이 되는 경우. 1. 스택에서 사용이 다 끝난 프레임이 사라지고 그 안에 만들었던 변수는 GC 대상이 됨. 2. 위 예제에서 a = null; 을 호출하면 GC 대상이 됨. 2. Soft Reference ( 소프트 참조 )란? User a = new User(); SoftReference obj = new SoftReference(a); a = null;.. 2023. 4. 5.