この質問に対する答えを探してみましたが、見つけることができませんでした。
最大ヒープ サイズを定義する場合、Java GC スペースにサイズを割り当てる標準的な比率はどれくらいですか?
つまり、たとえば 4Gb のヒープで JVM を開始した場合、Eden にはどれくらい割り当てられるのでしょうか? 生存者にいくら?在職期間はどのくらいですか?
また、その比率は VM ベンダーごとに変わりますか?
前もって感謝します
この質問に対する答えを探してみましたが、見つけることができませんでした。
最大ヒープ サイズを定義する場合、Java GC スペースにサイズを割り当てる標準的な比率はどれくらいですか?
つまり、たとえば 4Gb のヒープで JVM を開始した場合、Eden にはどれくらい割り当てられるのでしょうか? 生存者にいくら?在職期間はどのくらいですか?
また、その比率は VM ベンダーごとに変わりますか?
前もって感謝します
これは JVM 固有です。Oracle の JVM では、以下を使用してヒープ サイズを確認できます-XX:+PrintCommandLineFlags -XX:+PrintGCDetails
。
$ java -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -version
-XX:InitialHeapSize=78820288 -XX:MaxHeapSize=1261124608 -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -XX:+UseCompressedOops -XX:+UseParallelGC
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
Heap
PSYoungGen total 22464K, used 770K [0x000000013e820000, 0x0000000140130000, 0x0000000157970000)
eden space 19264K, 4% used [0x000000013e820000,0x000000013e8e0b08,0x000000013faf0000)
from space 3200K, 0% used [0x000000013fe10000,0x000000013fe10000,0x0000000140130000)
to space 3200K, 0% used [0x000000013faf0000,0x000000013faf0000,0x000000013fe10000)
ParOldGen total 51328K, used 0K [0x000000010c570000, 0x000000010f790000, 0x000000013e820000)
object space 51328K, 0% used [0x000000010c570000,0x000000010c570000,0x000000010f790000)
PSPermGen total 21248K, used 2165K [0x0000000107370000, 0x0000000108830000, 0x000000010c570000)
object space 21248K, 10% used [0x0000000107370000,0x000000010758d6a8,0x0000000108830000)
このことから、比率を簡単に計算できます。