2011-08-15 3 views
1

이것은 초보자가 작성한 올바른 질문이 아니지만 도움을받을 수 있기를 바랍니다.Java에서 힙을 얼마나 많이 늘릴 지 예상 할 수 있습니까?

힙의 -XX:MinHeapFreeRation=40 (기본값) 퍼센트를 유지하기 위해 Java에 의해 힙이 증가하는 방식을 예측할 수 있는지 궁금합니다.

자세한 내용 :
내 힙이 300MB를 할당/차지한 경우 JVM이 항상 40 % * 300 = 120MB를 유지해야 함을 의미합니다. 이 경우 메모리 누수가 있고 GC가 도움이되지 않는다고 가정 해 봅시다. 그래서, 내 무료 힙 공간이 120 MB 이하로 떨어질 위험에 처해있을 때, Java가 힙 할당 메모리를 증가시키는 양은 어느정도입니까? 20 MB, 40 MB? 나는 그것이 시스템과 시스템의 현재 상태에 달려 있다고 생각한다. 하지만 실행중인 앱이 내 앱이라고 가정 해 보겠습니다.

누군가 도움을 줄 수 있습니까? 감사.

+0

메모리 누수가있는 경우 수정해야합니다. 한 가지 방법은 jmap과 jhat이지만, IDE는 아마도 힙 덤프를 수행하는 더 좋은 방법을 가지고있을 것입니다. 힙 덤프는 힙의 모든 메모리를 자세하게 설명합니다. 어떤 물체가 많은 공간을 차지하는 지 알 수 있으므로 아마 거기에 없어야합니다. – toto2

+0

예, 실제로 메모리 누수 문제를 해결해야합니다. 그러나 나의 질문은 다른 것을 언급하고 있었다. 메모리 누수가 없다고해도 (예를 들어 내가 원하는 것을 이해하는 데 도움이된다고 생각한 것), 메모리 누수가 없어도 힙이 커질 필요가있는 경우에도 Java는 어떻게 계산합니까? 힙을 늘릴 필요가있는 양? – ovdsrn

+0

실마리가 없습니다. 그러나 아마도 당신이 사용하고있는 특정 JVM에 크게 의존하고 있기 때문에 실제적인 대답은 없을 것입니다. 예를 들어 낭비 할 시간이 많은 경우 openjdk 코드를 살펴볼 수 있습니다. – toto2

답변

0

힙이 커지는 크기는 구현에 따라 다릅니다. 그러나 XX : MaxPermSize 매개 변수를 사용하여 힙이 커질 수있는 최대 크기를 항상 제한 할 수 있습니다.

관련 문제