대기 시간이 민감한 앱에는 캐싱 데이터 (TG에 있음)와 수명이 짧은 오브젝트가 YG에서 사라집니다. 마이너 GC 시간과 주요 GC 시간에 큰 차이가 있음을 확인했습니다. 나는 그것이 TG의 비교적 큰 크기와 관련이 있다고 생각했다. GC 시간이 TG 크기과 어떻게 관련되는지 설명 할 수 있습니까? 보조 GC는 꽤 자주 빠르고 빠릅니다.자바 GC 메이저 GC 대 마이너 GC
답변
요점은 GC 시간은 TG 크기가 아니라 그 안에있는 객체의 수입니다. 성능에 민감한 응용 프로그램은 캐싱을 위해 힙을 사용하지 않아야합니다. 오프 힙 캐시를 지원하는 광범위한 기존 캐싱 라이브러리가 있습니다.
오프 힙 캐시에서 성능이 저하 될 것이라고 읽었습니다. 캐시 된 객체는 키 값 쌍이 아니라 하나의 큰 객체입니다. 우리는 너무 빈번하게 (초당 10000 번) 동시에 전체 객체에 액세스해야합니다. –
초당 1000 회는 매우 낮은 속도이지만, 하나의 큰 개체 인 경우 실제로는 오프 힙 캐시의 문제입니다. GC 속도는 개체에 대한 단일 루트 참조를 사용하지만 개체에서 도달 할 수있는 인스턴스의 총 개수로 계산되므로주의해야합니다. –
YG의 마이너 컬렉션에서 살아남은 개체는 TG/Old 세대로 이동하여 YG에서 공간을 확보합니다. YG의 크기를 작게 유지하여 마이너 컬렉션에 시간이 많이 걸리지 않고 더 자주 실행할 수 있습니다.. 그리고 여전히 참조가있는 작은 GC 개체는 TG로 이동합니다.
TG 크기가 더 큰 이유는 대개 YG 클린업에서 생존하는 큰 물체가이 세그먼트으로 이동하기 때문입니다. 또한 TG에서 정리 작업이 자주 실행되지 않아 더 큰 메모리가 할당 될 수 있습니다.
그래서 마이너 GC는 YG에서 개체를 정리하지만 TG는 물론 YG도 주요 GC에서 정리합니다.
- 1. gc gc .. 실행할 수 없습니다.
- 2. 자바 GC 개념 : CMSInitiatingOccupancyFraction
- 3. 자바 GC 로그 분석
- 4. 자바 GC 이름 'MarkSweepCompact'
- 5. Java SoftReference, GC 및 GC 동작 분석
- 6. 32 대 64 비트 GC
- 7. 모노 뵘 SGen의 GC 대
- 8. .Net 메모리 덤프 :! eeheap -gc : GC 생성은 어디에서 시작하고 끝나나요?
- 9. GC 콜을 교착 상태로 만들 수 있습니까? 콜렉트와 GC.
- 10. Cocoa Distributed Objects, GC 클라이언트, non-GC 서버
- 11. 서버용 C# GC
- 12. 개체를 참조하여 GC 향상
- 13. Monotouch threads, GC, WCF
- 14. Sun GC maxtenuringthreshold
- 15. Java에서 GC 모니터링
- 16. GC 구멍이란 무엇입니까?
- 17. Java CMS GC 동작
- 18. Node.js GC 마크 - 컴팩트
- 19. Monodroid GC 및 센서
- 20. PerfView GC 트리거 이유
- 21. GC 수집은 무엇입니까?
- 22. gc -io가없는 Java
- 23. Java GC 세부 로그
- 24. Android GC 실행시기 결정
- 25. Kinect & EmguCV & GC
- 26. 점차적 인 GC 호출
- 27. mem.limits and gc
- 28. 루아 사용자 데이터 gc
- 29. CLR의 결정 성 GC?
- 30. GC 정리 방법은 무엇입니까?
사소한 부분은 대개 중지 및 복사되며, 주요 부분은 동시에 마크 앤 스위핑입니다. 너무 큰 풀을 복사 할 때 너무 자주 멈추지 않는 것이 좋습니다. –