我試圖檢查由於Java中的特定方法而導致的開銷。 說的方法是「發送(消息)」,我想「記錄(時間戳);發送(消息);日誌(時間戳)」,並找出時間戳之間的差異。問題在於該方法速度非常快(預期的差異在納秒內)。我也不想測量記錄時間戳的時間(除非它是微不足道的)。您能否推薦一種有效記錄時間戳的方法?通常相隔幾納秒的時間戳的低延遲日誌記錄
1
A
回答
2
這樣做的最好方法是記錄方法調用之前的時間,然後調用方法數千乃至數百萬次並記錄結束時間。快速劃分會告訴你一次通話的總時間(這將非常小)。
由於JIT'ing請確保您以與生產中相同的方式測試該方法,或者您可能在實際環境中得到與測試中結果不同的結果。另外,您可能希望在開始時間測試之前運行該方法數千次,以確保您實際上正在運行完全優化的代碼。
+0
非常感謝wobblycogs和fge! –
0
如果你怕log
開銷,解決辦法很簡單:因此
final long before, after;
before = System.nanoTime();
send(message);
after = System.nanoTime();
log("before: " + before);
log("after: " + after);
唯一的開銷左邊是調用System.nanoTime()。
相關問題
- 1. 用於低延遲日誌記錄的Apache log4j異步記錄器
- 2. PHP CLI延遲幾秒
- 3. 帶毫秒的時間戳,計算「延遲」
- 4. INET Nordic FIX協議延伸至納秒粒度時間戳
- 5. 估計時間延遲時間戳
- 6. Logcat的日誌記錄的時間戳序列不正確
- 7. jOOQ獲取時間戳沒有納秒
- 8. 將時間戳轉換爲納秒
- 9. Python日誌記錄中的準確時間戳
- 10. 延遲與0.1秒的持續時間
- 11. 在時間戳記上獲取日誌
- 12. 相應的日誌記錄
- 13. Laravel/Eloquent - 15秒時間戳間隔
- 14. 顯示NTFS時間戳記爲100納秒粒度
- 15. 具有相同時間戳的兩個延遲作業。
- 16. 將定時間隔拉到記錄的時間戳
- 17. 設置相當於我的日誌文件時間戳的Kibana時間戳
- 18. 實時日誌分析器 - 文件訪問每隔幾秒鐘
- 19. 將時間戳添加到memcached日誌記錄
- 20. 如何將日期/時間戳記納入我的功能
- 21. 時間戳包括微秒的Python讀物日誌文件
- 22. 日誌文件不顯示毫秒的時間戳
- 23. 時間變量,降低延遲
- 24. 匹配記錄日期時間間隔
- 25. Ejabberd延遲交付時間戳
- 26. 使用日誌時間戳記覆蓋尾部時間戳記fluentD
- 27. 日誌記錄日期時間參數
- 28. 爲什麼EntLib日誌在相同的時間戳發出幾條消息?
- 29. dismissViewControllerAnimated:完成:有幾秒延遲
- 30. 延遲頁面處理幾秒鐘
此外,你可能想看看[卡尺](https://code.google.com/p/caliper/) – fge