2014-03-18 39 views
1

的G1GC日誌打印堆職業價值觀四捨五入爲MB或GB,有沒有辦法在KB或MB所有值如何打印?G1GC登錄舍入值大垛

我想分析分配和促銷率,這種舍入值導致不準確。

例如,下面的GC事件顯示從11.7G->1826.2M減少的總堆佔用量,對於收集之前的總堆大小僅顯示了一個舍入值11.7G。使用

4592.204: [GC pause (G1 Evacuation Pause) (young) 
    [Eden: 9804.0M(9804.0M)->0.0B(9800.0M) Survivors: 112.0M->86.0M 
    Heap: 11.7G(15.0G)->1826.2M(15.0G)] 
    ... 

VM標誌:

-Xms16g -Xmx16g -XX:+UseG1GC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:gc.log

使用熱點JVM 1.8.0-B132。

+0

我在尋找確認,這種行爲是默認的,不能改變。 –

回答

3

請參閱源代碼OpenJDK 7u熱點herehere

這兩點使用方法byte_size_in_proper_unitproper_unit_for_byte_size位於here

我認爲從PrintGCDetails或PrintGC修改G1GC日誌的唯一方法是重新編譯JVM,只能用OpenJDK而不是Oracle的JVM來完成。

有關輸出格式的更多信息,請參見以下stackoverflow post

對於G1GC日誌中的數據,您可以使用帶有選項-gc和-gcnew的jstat工具,在不同時間以KB爲單位進行採樣,有關jstat用法的更多信息,請參閱here。如果您想爲Jstat編寫類似的工具,則該源位於here