Java блокирует память - PullRequest
       5

Java блокирует память

2 голосов
/ 22 сентября 2010

У меня есть Java-программа, которая использует слабый хэш-файл для кэширования некоторых вещей, если java требуется больше памяти, слабый хэш-файл очищается.Это прекрасно работает для меня.Теперь у меня также работает программа ac # на том же компьютере, и я узнал следующее:

Когда java-программа работает, моя c # -программа не работает правильно, когда компьютер сильно загружен.С другой стороны, моя c # -программа также работает нормально в это время, когда java-программа не запущена.

Может ли быть, что моя java-программа блокирует память, которую могла использовать моя c # -программа?Как я могу это выяснить?

Ответы [ 2 ]

2 голосов
/ 22 сентября 2010

Вы не можете установить максимальную границу для кучи .net CLR так же, как для кучи своей JVM.См. этот вопрос для получения дополнительной информации.CLR будет просто пытаться расширить свою кучу, пока не достигнет установленного операционной системы предела памяти процесса или не будет израсходована свободная память вашей машины.

Так что да, когда вы увеличиваете размер кучи JVM, вы можетезарезервируйте память, которую в противном случае использовал бы ваш CLR. JVM начнется с нижней границы и при необходимости расширится до верхней границы.Как упомянуто выше, эта память не освобождается за пределами JVM - она ​​не доступна для .net CLR.

Вам нужно будет еще провести мониторинг, чтобы выяснить, действительно ли память является причинойпроблема, хотя.

2 голосов
/ 22 сентября 2010

Ваша Java-программа расширит свою кучу до заданного размера.Сборка мусора освободит объекты, возвращающие их в свободное пространство кучи, но не уменьшит общую память, используемую программой Java.

Используйте возможности вашей ОС для исследования памяти, используемой приложениями C ++ и Java.

Вы можете использовать параметры командной строки в своей JVM для управления максимальным размером кучи для Java и, следовательно, ограничитьголодным будет.Конечно, если вам нужна огромная куча, то вполне возможно, что на одной машине все не поместится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...