2013-05-13 4 views
0

В настоящее время я работаю над Mac-приложением, в котором я часто получаю OutOfMemoryError. В настоящее время мы используем неиспользуемый JAR-файл для нашего приложения, поэтому я не могу установить размер кучи перед запуском приложения, потому что мой java-код будет выполняться с использованием JNI. Таким образом, существует возможный способ установить размер кучи с помощью JNI или C.Как установить пустое пространство для неисполняемого JAR с помощью JNI

Или Любое другое решение для вышеупомянутой проблемы. Спасибо заранее.

ответ

1

Я нашел ответ. Я использовал JNI, поэтому перед созданием JVM мы должны заполнить параметр JavaVMOption как «-Xms256m» для минимального размера и «-Xmx512m» для максимального размера. Он будет выделять минимальный размер кучи JVM как 256 МБ и максимальный размер кучи JVM как 512 МБ.

Так что это код, чтобы помочь другим:

JavaVMInitArgs args; 
JavaVMOption options[3]; 
args.nOptions = 3; 

options[0] = (char*)"-Xms256m"; 
options[1] = (char*)"-Xmx512m"; 
options[2] = //Your JAR file path. 
args.options = options; 

Затем пройти арг (объект JavaVMInitArgs) при создании виртуальной машины Java. Над кодом будет установлен минимальный и максимальный размер кучи.

Помните, что еще 1 вещь не устанавливает минимальный размер кучи, прежде чем устанавливать максимальный размер кучи, потому что в этом случае ваш минимальный размер кучи будет больше или равен максимальному размеру кучи, и он сработает.

 Смежные вопросы

  • Нет связанных вопросов^_^