2012-10-10 3 views

답변

0

사용할 최적의 메모리 양은 프로그램을 실행하기위한 최소 힙의 2-5 배가 될 수 있습니다. GC 실행 빈도는 GC 후 사용 가능한 메모리의 양에 반비례합니다.

실제로 성능 저하제입니까?

귀하의 응용 프로그램에 따라 다르 겠지만, 나는 그렇게 생각합니다.


주어진 RAM은 시간 비용에 비하면 상대적으로 싸기 때문에 RAM이 충분히 있는지 확인하는 경향이 있습니다. $ 80 미만의 가격으로 16GB를 살 수 있습니다.

+0

감사합니다 @ 피터, 그러나 그 프로그램에 대한 최소한의 필요한 힙을 측정 할 수있는 또 다른 질문이 발생, 어떤 특정 도구 또는 무언가가 있습니까? –

+0

당신은 프로그램을 충분히 오래 실행시켜야 할 수도있는 모든 것을로드 할 것이고 전체 GC (VisualVM으로 트리거 할 수있다) 이후의 힙 크기를 살펴볼 필요가있다.로드가 필요할 수도있는 것을 아는 것이 불가능하다면 얼마나 많은 기억이 필요한지 말할 수 없다. –

+1

다시, visualVM (Windows의 경우 jvisualvm.exe)으로 안내하겠습니다. 앱 실행 없이도 실행하여 실행중인 VM에 대한 시각적 인상을 얻으십시오. –

0

이 종류는 사용중인 gc 및 jdk에 사용되는 알고리즘에 따라 다릅니다. 일반적인 gc는 다른 스레드의 실행을 중지시키는 킬러입니다. JDK 1.6 이상인 경우 예를 들어 다음을 사용하여 표시 할 수 있습니다. visualVM. 이를 극복하기위한 다양한 gc 알고리즘이 있습니다. 여기서는 차이점을 가장 잘 설명하는 문서를 보내 드리겠습니다.

+0

ok @Timo Hahn thanks –

0

응용 프로그램의 메모리 요구 사항과 Xmx를 사용하는 메모리 할당간에 올바른 균형을 찾는 것이 핵심 성능 조정 활동입니다.

예, JVM이 절대적으로 성능 저하 요인이 될 수있는 상수 GC를 쓰러 뜨리지 않도록하려면 충분히 큰 힙을 만들고 싶습니다.

필요한 힙 크기는 완전히 응용 프로그램에 따라 다릅니다.

+0

너무 큰 힙 크기가 GC 일시 중지로 연결되지만 그 기술적 원인을 알 수는 없지만 실제로는 1-RAM 제한 2 회피 GC 일시 중지이므로 두 가지 제약 조건이 있습니다. 내 경우에 최적의 Xmx 크기를 찾으려면 몇 가지 시도와 오류를 수행해야한다고 생각합니다. 고맙습니다 –

관련 문제