2011-02-20 1 views
0

이클립스 웹 사이트에서 .tar.gz 파일을 다운로드하고 내 홈 디렉토리에서 추출하여 우분투에서 이클립스 EE를 사용하고 있습니다. eclipse.ini에서 -Xmx를 3072m으로 설정했습니다. 내가 뭔가를 59메가바이트은 62,193,664 반환Xmx는 3072m이지만 Runtime.getRuntime(). totalMemory()는 59mb를 반환합니다.

Runtime.getRuntime().totalMemory() 

에 의해 내 총 메모리를 참조하려고 할 때

-startup 
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar 
--launcher.library 
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.1.R36x_v20100810 
-product 
org.eclipse.epp.package.jee.product 
--launcher.defaultAction 
openFile 
-showsplash 
org.eclipse.platform 
--launcher.XXMaxPermSize 
256m 
--launcher.defaultAction 
openFile 
-vmargs 
-Dosgi.requiredJavaVersion=1.5 
-XX:MaxPermSize=256m 
-Xms2048m 
-Xmx3072m 

을하지만 : 여기있다. 또한 터미널 설정 vmagrs에서 이클립스를 시작하려고했지만 아무 것도 변경되지 않았습니다. 나는 무슨 일이 일어나고 있는지 모른다. 힙 크기를 어떻게 설정할 수 있습니까? 내 총 숫양은 4 기가 바이트이고 나는 64 비트 일식과 64 비트 우분투를 사용합니다. 모든 정보는 나에게 매우 도움이 될 것입니다.

답변

1

1) Runtime.getRuntime().totalMemory() 허용되는 최대 힙 크기를 반환하지 않습니다

이 스레드에 대한 설명이있다.

2) 어떻게 실행합니까? Runtime.getRuntime().totalMemory()하지만 자바 애플리케이션의 Eclipse 내에서 그렇게 할 것 같아요. 이 경우 eclipse.ini 파일의 특성을 상속하지 않는 다른 JVM에서 호출을 실행합니다. 초기 힙 크기와 최대 힙 크기를 결정하려면 Run->Run Configurations...으로 가면됩니다. 현재 실행 구성을 클릭하고 오른쪽 창에서 Arguments 탭을 클릭하십시오. 여기서 VM 인수를 지정할 수 있습니다 (예 :

).
-Xms64m 
-Xmx1024m 

그런 다음 Runtime을 계속 실험 할 수 있습니다. eclipse.ini은 실행중인 Java 응용 프로그램이 아닌 Eclipse IDE의 자원을 구성합니다.

건배!

+0

고맙습니다. 귀하의 제안은 정말 도움이됩니다. 실행 구성에서 -vm 옵션을 설정하면 작동합니다. 그러나 런타임은 이전과 동일한 가치를 부여합니다. 그러나 코드는 현재 작동하고 1000000000 차원 부울 배열을위한 메모리 공간을 할당합니다. 고맙습니다. –

+0

안녕하세요! totalMemory()는 최대 힙 크기를 인쇄하지 않습니다. 좀 더 자세한 인쇄 작업을 수행하는 방법에 대해 많은 샘플을 찾을 수 있습니다. 예 : http://itspice.net/cms/java/how-to-print-java-jvm-heap-size-and-memory-usage-info-in-runtime –

1

간단히 말해서, Runtime.getRuntime().totalMemory()은 쓸모가 없으므로 하나의 GC 생성 크기를 반환합니다. http://mail.openjdk.java.net/pipermail/hotspot-gc-use/2008-December/000318.html

+0

Xmx 테스트를 위해 1000000000 차원의 부울 배열 메모리를 할당하려고합니다. 스레드 "main"에서 Exception을 제공합니다. java.lang.OutOfMemoryError : Eclipse에서 Java 힙 공간. 하지만 java -Xmx3072m 설정 java 코드 명령 줄을 실행하면 작동합니다. 그러나 일식에서 그것은 작동하지 않습니다. eclipse.ini의 -vm을/usr/lib/jvm/java-6-openjdk/jre/bin/java로 설정했습니다. 그러나 아무것도 바뀌지 않았습니다. 이 동작에 대한 설명이 없습니다. –

0

감사합니다. 그래서 해결책은 eclipse에서 Run-> Run Configurations에서 VM Arguments를 설정하는 것입니다. 나는 -Xms3072m -Xmx3072m으로 설정했고, 이제 totalMemory() 런타임은 3087007744를 반환하는데, 이는 64 비트 Ubuntu 10.10 및 64 비트 JVM을 사용하는 4GB 램에서 2944MB입니다.