heapsize의 양이 제한되어 있기 때문에 JVM에서 더 자주 가비지 수집을 실행해야합니까? 및 실질적으로, 그것은 성능 킬러입니까?가비지 콜렉션 때문에 소량의 Xmx로 인해 Java 프로그램이 비효율적으로 실행됩니까?
답변
사용할 최적의 메모리 양은 프로그램을 실행하기위한 최소 힙의 2-5 배가 될 수 있습니다. GC 실행 빈도는 GC 후 사용 가능한 메모리의 양에 반비례합니다.
실제로 성능 저하제입니까?
귀하의 응용 프로그램에 따라 다르 겠지만, 나는 그렇게 생각합니다.
주어진 RAM은 시간 비용에 비하면 상대적으로 싸기 때문에 RAM이 충분히 있는지 확인하는 경향이 있습니다. $ 80 미만의 가격으로 16GB를 살 수 있습니다.
감사합니다 @ 피터, 그러나 그 프로그램에 대한 최소한의 필요한 힙을 측정 할 수있는 또 다른 질문이 발생, 어떤 특정 도구 또는 무언가가 있습니까? –
당신은 프로그램을 충분히 오래 실행시켜야 할 수도있는 모든 것을로드 할 것이고 전체 GC (VisualVM으로 트리거 할 수있다) 이후의 힙 크기를 살펴볼 필요가있다.로드가 필요할 수도있는 것을 아는 것이 불가능하다면 얼마나 많은 기억이 필요한지 말할 수 없다. –
다시, visualVM (Windows의 경우 jvisualvm.exe)으로 안내하겠습니다. 앱 실행 없이도 실행하여 실행중인 VM에 대한 시각적 인상을 얻으십시오. –
이 종류는 사용중인 gc 및 jdk에 사용되는 알고리즘에 따라 다릅니다. 일반적인 gc는 다른 스레드의 실행을 중지시키는 킬러입니다. JDK 1.6 이상인 경우 예를 들어 다음을 사용하여 표시 할 수 있습니다. visualVM. 이를 극복하기위한 다양한 gc 알고리즘이 있습니다. 여기서는 차이점을 가장 잘 설명하는 문서를 보내 드리겠습니다.
ok @Timo Hahn thanks –
응용 프로그램의 메모리 요구 사항과 Xmx를 사용하는 메모리 할당간에 올바른 균형을 찾는 것이 핵심 성능 조정 활동입니다.
예, JVM이 절대적으로 성능 저하 요인이 될 수있는 상수 GC를 쓰러 뜨리지 않도록하려면 충분히 큰 힙을 만들고 싶습니다.
필요한 힙 크기는 완전히 응용 프로그램에 따라 다릅니다.
너무 큰 힙 크기가 GC 일시 중지로 연결되지만 그 기술적 원인을 알 수는 없지만 실제로는 1-RAM 제한 2 회피 GC 일시 중지이므로 두 가지 제약 조건이 있습니다. 내 경우에 최적의 Xmx 크기를 찾으려면 몇 가지 시도와 오류를 수행해야한다고 생각합니다. 고맙습니다 –
- 1. Java : 가비지 콜렉션
- 2. Java 가비지 콜렉션
- 3. Java 클러스터링에서 가비지 콜렉션
- 4. 런타임 생성 코드의 Java 가비지 콜렉션
- 5. 가비지 콜렉션 - 루트 노드
- 6. Java : jlibs를 사용한 가비지 콜렉션 보장
- 7. 가비지 콜렉션 시간이 매우 길다.
- 8. Java 가비지 콜렉션 및 큰 객체
- 9. 자바 가비지 콜렉션
- 10. 파이썬 스레드 가비지 콜렉션
- 11. Ruby의 가비지 콜렉션 디버깅
- 12. JS 가비지 콜렉션
- 13. Websphere Portal Server와의 이상한 가비지 콜렉션 동작
- 14. HBase MemStore 및 가비지 콜렉션
- 15. Perl 그래프 가비지 콜렉션 사용
- 16. Java 가비지 콜렉션 - CPU 스파이크 - 연결 설정 시간이 더 길어졌습니다.
- 17. 가비지 수집 YGCT 및 가비지 콜렉션 시간이 계속 증가합니다.
- 18. Java : 콜렉션 임의 콜렉션 컬렉션을 통한 콜렉션
- 19. Java 연결 풀링 - 가비지 콜렉션 또는 호출 닫기()?
- 20. 가비지 콜렉션 (또는 다른 종류의 중단) 진단
- 21. 콜렉션 루핑으로 인해 로크업이 발생합니다
- 22. 웹 시작으로 인해 Java 응용 프로그램이 느려짐
- 23. JS 엔진은 가비지 콜렉션 루트를 언제 작성합니까?
- 24. 긴 부수적 인 가비지 콜렉션 일시 중지
- 25. Objective-C 가비지 콜렉션 디버깅을위한 전략
- 26. Android 게임 개발 및 가비지 콜렉션
- 27. 오브젝트 데이터에 대한 JavaScript 가비지 콜렉션
- 28. 낮은 대기 시간에 대한 가비지 콜렉션 조정
- 29. 주석으로 인해 코드가 느리게 실행됩니까?
- 30. .net 응용 프로그램이 Linux에서 실행됩니까?
실제로 실행할 수없는만큼 작지는 않지만 성능상의 결과에 대해 알아야합니다. –