자바 가비지 컬렉션 알고리즘, 원칙 자주 인터뷰를 요청

원본 링크 : https://blog.csdn.net/qq_39089301/article/details/87368991

그의 이름처럼 가장 기본적인 알고리즘, "마크 지우기 법은"알고리즘은 "명확한"단계로, "표시"단계, 두 단계로 나누어진다. 그 때문에 이후의 알고리즘의 가장 기본적인 알고리즘을 재생하는 것은 자신의 향상을 얻을 기반으로하는,

첫째, 명확한 효율을 표시 할 때 다른 한편으로, 높은 아니라, 프로그램에 연속 메모리 덩어리를 할당해야 후에 이어질 것입니다 복구 후 분리 된 우주 쓰레기의 많은 수있을 것입니다 : 그는 두 가지 단점이 있습니다 그러나 우리는 충분히 일찍 연속 메모리에 다른 쓰레기 수거 작업을 찾아야했다

복제 알고리즘 :

그것은 "복제 알고리즘"을하므로 효율성 문제를 해결하기 위해, 두 개의 크기에 따라 동일한 메모리 용량으로 분할 될 수 있으며, 또한 객체 등의 다른 부재 살아남이 메모리가 소모 하나만 사용 대용량 메모리, 그리고 마지막으로 메모리 공간을 청소하는 데 사용되었습니다. 그래서 각각 절반 메모리 복구, 우주 쓰레기 및 기타 문제의 메모리 할당을 고려할 필요가있다. 그러나이 절반 메모리의 비용으로 지불되고, 비용이 너무 높습니다.

그러나, 거위, 지금 우리는 상업적인 가상 머신은 "죽음에 대한 원시 저녁"의 새로운 세대, 그래서 일 필요가 없기 때문에, 새로운 세대를 처리하기 위해이 알고리즘을 사용하고 있습니다 배포 한 비율을하지만, 내부는 에덴의 더 큰 조각으로 나누어 져 서바이버 두 영역 각각 서바이버 에덴 영역을 사용하고, 상기 가비지 컬렉션, 복사 및 에덴 서바이버 다른 하나 서바이버 미사용 영역에 오브젝트를 사용하는 경우 생존 할. (1) 폐기물의 절반 메모리, 우리가 메모리의 10 %를 낭비 : 상대 한 있도록, 1 : 핫스팟 8의 에덴과 생존자 비율을 기본.

생존자 메모리 영역이 충분하지 않을 때 우리는, 따라서, 목표의 10 % 이내 살아남을 것입니다 각 게시물 후에 그것을 보장 할 수 없습니다, 우리는 보장을 할당 이전 해에 의존해야

PS (프로모션 처리) : 인상이 단어의 최고의 기시감 단지 본 후 팽창을 심화.

이차원 코드를 가지고 찔러

640? wx_fmt = PNG

이차원 코드를 가지고 찔러

태그 법을 정리

당신이 절반 메모리 공간을 낭비하고 싶지 않아, 결함 복사 알고리즘은 물체의 높은 생존율, 우리는 광범위한 사본을 수행해야 할 때, 효율이 떨어질 것입니다 만, 키가, 당신은 객체를 처리하기 위해 추가 보증을 할당해야 극단적 인 경우에 "오래된 바보", 그것은 사본 알고리즘 노인에 적합하지 않습니다.

명확한 라벨 프로세스를 표시 정렬 알고리즘을 표시 오래된 밴드의 특성에 따라 전위가 아니라 직접 후속 단계를 취소하는 것이 아니라 살아남은 개체를 끝으로 이동하고, 마지막으로 경계 외부에서 직접 메모리를 청소 동일합니다.

세대 모음

다른 개체에 따라 메모리는 몇 가지로 구분되어주기를 살아 객체. 자바 힙은 일반적으로 가장 적절한 알고리즘에 따라, 매년 오래된 밴드의 새로운 세대로 구분된다. 예를 들어, 몇 살아남은 가비지 컬렉션의 새 세대, "구성 태그를" "지우기 밖으로 표시"또는, 당신은 사용해야합니다 보장 추가 메모리 공간이 없다, 이전 세대에서, 객체가 더 이상 살고, 복사 방법을 사용 .

640? wx_fmt = PNG

추천

출처blog.csdn.net/zhupanlinch/article/details/102739928