2009-03-10 6 views
1

Java VM에는 힙 크기를 설정하는 "-XMx"및 "-XMs"가 있습니다. 또한 힙의 크기를 지능적으로 조정할 수있는 "인체 공학"기능이 있습니다. 하지만, 나는 엄격하게 고정 된 크기의 힙을 필요로하는 문제가있다. 여기 Java 힙의 크기를 고정하는 방법

명령 줄 인수입니다 :

"-Xms2m -Xmx2m -XX:+PrintGCDetails" 

그러나, GC 로그를 관찰함으로써, 힙의 크기를 2048K로 고정되지 않은 것 같다. 예를 들어 2368K, 2432K, 2176K 등 :

[GC [PSYoungGen: 480K->72K(704K)] 1740K->1332K(2368K), 0.0032190 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 
[GC [PSYoungGen: 560K->64K(768K)] 2094K->1598K(2432K), 0.0033090 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 
[GC [PSYoungGen: 544K->32K(768K)] 1675K->1179K(2176K), 0.0009960 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 

가 할 수있는 방법이 있나요없는 "엄격한 크기 조정"(더 이상 아무 이하) 자바 힙?

답변

-1

표준 VM을 사용할 수 없다는 것을 알고있는 한. 불행히도 지금 당장은 아무런 참고 자료가 없습니다.

+0

감사합니다. Jan. 쉬운 방법이없는 경우 소스 코드를 파헤쳐 야합니다. – peng

0

-Xmx 및 -Xms와 함께 초기 힙 크기를 결정하는 다른 옵션이 있습니다. 자세한 내용은 jvm tuning guide을 확인하십시오.

4

JVM이 의도 한대로 힙을 관리 할 것이라고 생각하지만, 예에서 문제는 최대 힙 크기가 너무 낮게 무시된다는 것입니다.

Sun의 Windows JVM 버전 1.6.0_06에서 최소 '최대 힙 ​​크기'는 약 6MB (즉, -Xmx6m)라고 생각합니다. 낮은 설정을 시도하면 힙이 실제로 커질 수 있습니다. (나는 최소값이 16m라고 생각했지만 약간의 실험에서 6m만큼 낮은 값이 작동하는 것으로 나타났습니다.)

-Xms8m 및 -Xmx8m을 설정하면 힙이 크기.

0

너무 작을 것 같습니다. 16m 또는 64m와 같이 더 높은 곳을보십시오. 또한 내부와 외부 크기가 구두가 다릅니다. 힙은 항상 채워지지 않으므로 프로그램이 시작된 경우 Xms 미만인 경우에도 Xmx 미만이 항상 가능합니다. 그러나 외부 적으로 Xms 메모리가 할당되었음을 알 수 있습니다. 내가 처음 내가 2 기가 바이트했다 생각 읽었

0

)

자바는 최소 10 사용 잊지 마세요 - 당신은 많은 변화를하지 않을 수 있습니다 저장 수백 K 있도록 비 힙 공간 30 메가 바이트 네가 생각 한대로.

관련 문제