[英]How to determine JVM GC throughput?
確定 Oracle Java 8 JVM 垃圾收集器吞吐量的最簡單方法是什么,最好使用 JDK 命令行工具?
使用 jstat 命令,我可以獲得總垃圾收集時間(GCT 列)。 根據這個值的變化和GC日志對比,jstat輸出的GCT值好像是累積的GC耗用時間,以秒為單位(自JVM啟動以來)。 這樣對嗎?
那么,我可以這樣計算 GC 吞吐量嗎?
1 - GCT / time_since_jvm_start
jstat 可用於使用以下命令獲取自 JVM 啟動以來的 GC 和時間:
jstat -gcutil -t <jvm-pid> 1000 1
你的問題是正確的。 GCT
列包含 JVM 在年輕 GC 和完整 GC 中停止執行垃圾收集的總時間。
您可以在編寫時使用 jstat ( jstat -gcutil -t <jvm-pid> 1000 1
) 並查看第一列以查看 JVM 運行的總時間。 讓我們稱之為uptime
。 此時間戳和 GC 時間都以秒為單位。 如果您想計算未花在 GC 上的時間百分比,您將按照以下方式進行操作:
1 - GCT / uptime
我認為稱這個吞吐量有點誤導。 例如,如果您使用 CMS 收集器,GC 會與應用程序並行發生,這會降低應用程序吞吐量,但實際上並不會停止應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.