即使对于小程序,Java 内存使用率也很高
我有几个用java编写的简单应用程序,其中一个编写为充当小部件。令我惊讶的是,即使是小型应用程序也使用了多少RAM。
我写了以下内容,看看它是我的程序中的错误,还是一般的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
}
}
然后编译并运行它,它给了我以下RAM使用情况: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
是不是太高了?特别是34MB的堆。我的系统是 ArchLinux x86_64 和 openjdk-7。
有没有办法最大限度地减少JVM使用的RAM量?
编辑:我尝试使用-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。