2014-04-14 118 views
2

是否存在與Java -Xloggc類似的Mono探查器模式?運行時單聲道人類可讀的GC統計信息

我希望在我的應用程序運行時看到可讀的GC報告。目前Mono可以使用--profile = log選項運行,但輸出是二進制格式,每次我需要運行mprof-report來讀取它。輸出文件還包含很多我不感興趣的信息。

我試圖通過指定heapshot = 14400000ms來每隔幾個小時收集一次統計信息來減小文件大小,但這並沒有多大幫助。在一個星期內,我有幾個千兆字節的日誌。

我也嘗試使用「樣本」分析器,但開銷太多。

回答

0

您可以使用Mono的trace filters。只需將MONO_LOG_MASK設置爲gc並降低MONO_LOG_LEVEL即可。然後正常運行您的應用程序,您將在應用程序運行時獲得人眼可讀的GC統計數據:

$ export MONO_LOG_MASK=gc 
$ export MONO_LOG_LEVEL=debug 
$ mono ... # run your application normally .. 
... 
# notice the human readable GC output 
mono: GC_MAJOR: (LOS overflow) pause 26.00ms, total 26.06ms, bridge 0.00ms major 31472K/0K los 1575K/0K 
Mono: GC_MINOR: (Nursery full) pause 2.30ms, total 2.35ms, bridge 0.00ms promoted 31456K major 31456K los 5135K 
Mono: GC_MINOR: (Nursery full) pause 2.43ms, total 2.45ms, bridge 0.00ms promoted 31456K major 31456K los 8097K 
Mono: GC_MINOR: (Nursery full) pause 1.80ms, total 1.82ms, bridge 0.00ms promoted 31472K major 31472K los 11425K