2014-04-14 116 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