Java で作成された単純なアプリケーションがいくつかあります。そのうちの 1 つはウィジェットとして機能するように作成されています。小さなアプリケーションでさえ、どれだけの 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
}
}
次に、コンパイルして実行するとjava ram
、次の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 を使用します。