У меня есть несколько простых приложений, написанных в 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
Разве это не слишком высоко? Особенно куча 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.4MB, Mono использует 4.3MB.