我目前正在處理類com.sun.management.GcInfo的一些煩惱。 我通過添加GC通知監聽程序改進了我們的服務器日誌。每當主要GC發生時,我會記錄它花費的時間(以及其他一些東西)。 「官方」方式是爲GarbageCollectorMXBean bean添加通知監聽器。 一切按預期工作。我得到關於GC和每個GarbageCollector的消息,我得到一個持續時間爲 的com.sun.management.GcInfo對象。我的煩惱是,目前的文件7u51指出,延遲的價值是以毫秒爲單位。 我也在7u11下運行了我們的服務器應用程序,並且持續時間似乎高了1000倍=>微秒。 有沒有人有關於此的信息?他們在哪個Java版本中改變了這一點?Java垃圾回收GcInfo.getDuration()將單位從毫秒更改爲微秒
0
A
回答
1
這是JVM中的bug。 GcInfo方法返回刻度而不是毫秒。
這就是錯誤的描述說:
當從ManagementFactory抓住GarbageCollectorMXBean,現在有可能(在Java 7中)投底層的bean實現成NotificationBroadcaster中並添加的NotificationListener。這樣做會導致JVM在完成後報告GC事件。在JVM中,GCNotifier :: pushNotification將「原始」GCStatInfo數據(包含開始/結束滴答)放到請求隊列中。 GCNotifier :: sendNotification從此數據構造GcInfo而不將ticks轉換爲millis。當偵聽器訪問GcInfo對象時,對getDuration()的調用返回經過的tick和經過的millis(與源代碼中的註釋相反)。
因此,您應該使用JVM版本7u51或更高版本來獲取正確的GC信息。
相關問題
- 1. 每100秒垃圾回收
- 2. 格式時間從秒到毫秒:秒:毫秒:微秒
- 3. 毫微秒到毫微秒的轉換毫秒數<999999在Java中
- 4. Java - 從JSpinner返回分鐘秒毫秒
- 5. 以毫秒爲單位檢測秒數
- 6. 如何將日期更改爲毫秒毫秒SQL服務器
- 7. 將毫秒從3位更改爲2位
- 8. 將微秒舍入到毫秒MySQL
- 9. NetStream.seek以毫秒爲單位
- 10. TimeSpan.ParseExact以毫秒爲單位
- 11. 將數據格式化爲毫秒String WITHOUT SimpleDateFormatter(產生垃圾)
- 12. 以毫秒爲單位的TImespan,以分鐘和秒爲單位
- 13. 將以毫秒爲單位的unix秒數轉換爲POSIXct/POSIXlt
- 14. 將毫秒轉換爲毫秒
- 15. 如何以秒爲單位返回以毫秒爲單位的日期?
- 16. DateTime以微秒爲單位
- 17. Java 8:如何使用毫秒,微秒或納秒創建DateTimeFormatter?
- 18. 將時間轉換爲秒+毫秒秒
- 19. java垃圾回收
- 20. Java:垃圾回收
- 21. java - 垃圾回收
- 22. Java:垃圾回收
- 23. Javascript以毫秒爲單位顯示毫秒數:小時:無秒數分鐘
- 24. 從增強ptime刪除秒,毫秒和微秒
- 25. SqlAlchemy mysql毫秒或微秒精度
- 26. 轉換和微秒和毫秒比較
- 27. MySQL 5.6 DATETIME不接受毫秒/微秒
- 28. 如何解析以毫秒/微秒爲單位保存在ruby中的整數?
- 29. 帶有以毫秒或微秒爲單位的TTL的PHP數據緩存(Yii)
- 30. java將時間戳以秒爲單位轉換爲以毫秒爲單位的時間戳
嗨!我有同樣的問題,但這個類的開始和結束時間。我的服務器正在運行oracle jdk 7u6,並且開始和結束時間的結果都很奇怪:1530938772677.該值在API中被描述爲自JVM啓動以來的毫秒數......所以這個值沒有任何意義。這也不是一個時代,因爲這個價值將會在未來。我看不到任何信息... – omartin