[英]Analyzing gc logs
我正在使用-XX:+PrintGCApplicationStoppedTime
和-XX:+PrintGCApplicationConcurrentTime
選項打開gc日志記錄。
但是發現只有在4 0r 5次打印PrintGCApplicationStoppedTime
我的gc日志的實際詳細信息才通過-XX:+PrintGCDetails
命令打印!
根據定義, PrintGCApplicationStoppedTime
為每個gc打印應用程序停止時間。
但是我不清楚為什么它會打印如下所示的示例。
是因為
PrintGCApplicationStoppedTime
僅在每個安全點到達后打印
(要么)
該日志文件將由其他gc線程記錄。 我將並發掃描用於完整GC,並為年輕一代使用ParNew
我的應用程序是Web應用程序。
O / p模式-我變得像這樣:
Application time: 0.3847031 seconds
Total time for which application threads were stopped: 0.3135419 seconds
Application time: 0.1520723 seconds
Total time for which application threads were stopped: 0.1993920 seconds
Application time: 0.1188219 seconds
Total time for which application threads were stopped: 0.1993920 seconds
Application time: 0.1188219 seconds
Total time for which application threads were stopped: 0.1993920 seconds
Application time: 0.1188219 seconds
Total time for which application threads were stopped: 0.1993920 seconds
Application time: 0.1188219 seconds
1.229: [GC 1.229: [ParNew: 256000K->51200K(256000K), 0.1509756 secs] 426536K->334728K(997376K), 0.1510198 secs] [Times: user=0.85 sys=0.07, real=0.15 secs]
不幸的是, PrintGCApplicationStoppedTime
是此JVM選項的誤導性名稱。
實際上,它會打印在安全點內花費的時間。 安全點暫停的發生不僅是由於垃圾收集,還有其他許多原因:
即使沒有請求的VM操作,安全點也可能會定期發生,以便放空空閑的監視器,執行某些JIT清理等等。 請參閱-XX:GuaranteedSafepointInterval
VM選項(默認為1000毫秒)。
使用-XX:+PrintSafepointStatistics -XX:PrintSafepointStatisticsCount=1
可以轉儲有關安全點的更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.