Xmx составляет 3072 м, но Runtime.getRuntime (). TotalMemory () возвращает 59 МБ - PullRequest
0 голосов
/ 20 февраля 2011

Я использую Eclipse EE в Ubuntu, загрузив файл .tar.gz с веб-сайта Eclipse и распаковав его в свой домашний каталог. Я установил -Xmx на 3072 м в eclipse.ini. Вот оно:

-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

Но когда я пытаюсь увидеть свою общую память по

Runtime.getRuntime().totalMemory()

Возвращается 62193664, то есть 59 МБ. Я также пытался запустить eclipse из настроек терминала vmagrs, но ничего не изменилось. Я не знаю, что происходит. Как я могу установить размер кучи? Мой оперативная память составляет 4 ГБ, и я использую 64-битную Ubuntu с 64-битным затмением. Любая информация будет очень полезна для меня.

Ответы [ 3 ]

1 голос
/ 20 февраля 2011

1) Runtime.getRuntime().totalMemory() не возвращает максимально допустимый размер кучи.

2) Я не уверен, как вы запускаете Runtime.getRuntime().totalMemory(), но я предполагаю, что вы делаете это из своего Eclipse в приложении Java. В этом случае вы выполняете вызов в другой JVM, которая не наследует свойства из вашего eclipse.ini файла. Если вы хотите определить начальный и максимальный размер кучи для него, вы можете перейти к Run->Run Configurations.... Выберите текущую конфигурацию запуска и на правой панели щелкните вкладку Arguments. Здесь вы можете указать аргументы виртуальной машины, например:

-Xms64m
-Xmx1024m 

После этого вы можете продолжить экспериментировать с Runtime. eclipse.ini настраивает ресурсы для Eclipse IDE, а не для приложения Java, которое вы запускаете.

* Приветствия 1014 *!
1 голос
/ 20 февраля 2011

Короче говоря, Runtime.getRuntime().totalMemory() бесполезен, он возвращает размер одного поколения GC.

В этой теме есть объяснение: http://mail.openjdk.java.net/pipermail/hotspot-gc-use/2008-December/000318.html

0 голосов
/ 20 февраля 2011

Спасибо.Таким образом, решение заключается в установке VM Arguments из Run-> Run Configurations в eclipse.Я установил его на -Xms3072m -Xmx3072m, и теперь Runtime totalMemory () возвращает 3087007744, что составляет 2944 МБ в оперативной памяти 4 ГБ с 64-разрядной Ubuntu 10.10 и 64-разрядной JVM.

...