Высокое использование памяти Java даже для небольших программ
У меня есть пара простых приложений, написанных на Java, одно из которых написано для работы в качестве виджета. Что меня удивило, сколько оперативной памяти используют даже небольшие приложения.
Я написал следующее, чтобы увидеть, является ли это ошибкой в моих программах или общей проблемой Java:
public class ram {
public static void main(String[] args){
while(true)System.out.print("Hello World");//while loop to give me time to check RAM usage
}
}
Затем скомпилировал и запустил его сjava ram
и это дало мне следующее использование оперативной памяти:
The process java (with pid 4489) is using approximately 43.3 MB of memory.
34460 KB [heap]
7088 KB /usr/lib/jvm/java-7-openjdk/jre/lib/amd64/server/libjvm.so
1712 KB /usr/lib/jvm/java-7-openjdk/jre/lib/rt.jar
136 KB [stack:4495]
120 KB /usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libjava.so
Isn»это слишком высоко? Особенно куча 34МБ. Моя система - ArchLinux x86_64 и openjdk-7.
Есть ли способ минимизировать объем оперативной памяти, используемой JVM?
редактироватьЯ попытался использовать флаг -Xmx, и вот что я получил (1281k был наименьшим, с которого можно было бы начать):
java -Xmx1281k ram
The process java (with pid 4987) is using approximately 27.6 MB of memory.
18388 KB [heap]
Для сравнения, Python2 использует 4,4 МБ, Mono - 4,3 МБ.