私のプログラムは-Xms10240m -Xmx10240mで実行されます。私はメモリを確認するためにトップを使用して、サイズは3.5グラムです、それはxms valuseよりも小さいです。 use topJavaヒープメモリがTOPより大きい
ただし、jmap -heapを使用すると、ヒープサイズが約10gであることがわかります。 use jmap
何故ですか?
ありがとうございました。
私のプログラムは-Xms10240m -Xmx10240mで実行されます。私はメモリを確認するためにトップを使用して、サイズは3.5グラムです、それはxms valuseよりも小さいです。 use topJavaヒープメモリがTOPより大きい
ただし、jmap -heapを使用すると、ヒープサイズが約10gであることがわかります。 use jmap
何故ですか?
ありがとうございました。
-Xms10g -Xmx10g
、JVMの開始を使用しを使用しましたそれはヒープのために使用されるメモリを10gのオペレーティングシステムに要求します。 とOP-システムは、JVM(VIRTなどのショー)のためのメモリを割り当てようとしますが、システムはuと約束していなかった、それは物理メモリを割り当てます、それは多分交換;)
をしかし、uがVIRTはまだあるでしょう10gでない理由は10gですヒープの場合サイズのJVMには、スタック、permgen(ホットスポットJDK8、openJDKにはpermgenがないようですが、私が間違っていると私を修正します)、ネイティブスタック、コードファイルなど
そしてRESは実際の物理メモリのためのものですを使用して、それはまだヒープだけでなく、新しいオブジェクト、メソッドなどを含んでいます。
あなたの情報をありがとう、それは正しい永続的な世代はJDK8のHotSpotで削除されました。 –
うん、jdk8 +削除permgen – Five
複製可能:http://stackoverflow.com/questions/561245/virtual-memory-usage-from-java-under-linux-too-much-memory-used – waltersu