我們知道,在Java中,完整的GC可以掛起JVM,該JVM也可以稱爲STOP-THE-WORLD。在很多應用程序中,將JVM掛起太久會導致很多問題。我想知道如何減少GC中STOP-THE-WORLD的時間?減少STOP-THE-WORLD時間造成的潛在缺陷是什麼? (不考慮沒有停止的世界行爲的JVM)如何減少Java中STOP-THE-WORLD的時間GC
3
A
回答
2
有許多方法
- 產生更少的垃圾。內存分析器將有所幫助。
- 使用較少的堆。分析器可以幫助減少使用的內存。
- 改爲使用堆內存。有許多庫可以將堆中的數據存儲起來。例如編年史。
- 使用更多的記憶和GC會發生較少,可能不太嚴重時,他們這樣做。如果你使用的堆少於32 GB,這可能是一個快速的勝利。
- 使用完全併發的收集器,如Azul的Zing。它沒有STW收集器。
我會從內存分析器開始,以減少垃圾和堆的使用,並調整GC。
0
如果您的對象活得很長時間,您可以嘗試使用來自新I/O包的DirectBuffers。它們的創建和回收比創建和回收基於堆的非直接緩衝區更昂貴,因爲直接緩衝區是使用操作系統特定的本機代碼進行管理的。這種增加的管理成本使直接緩衝區成爲單次使用或不常使用的案例的不佳選擇。
直接緩衝區也在Java垃圾回收器的範圍之外。
+0
感謝您的遲到答案!什麼是與STOP-THE-WORLD有關的新的DirectBuffers。問題? – snow8261 2015-04-22 01:32:26
相關問題
- 1. Unity - 如何減少在更新和GC中花費的時間
- 2. 如何減少file_get_contents的執行時間
- 3. 如何減少jquery.min.js的CPU時間?
- 4. 如何減少時間的複雜性
- 5. 減少GridLayout Java Swing中的空間
- 6. 如何減少ldap搜索時間?
- 7. 如何減少文件上傳時間?
- 8. 如何減少MySQL連接時間
- 9. 如何使用Angular2減少DOMContentLoaded時間
- 10. 如何減少響應時間
- 11. 如何產生一個Java程序,以減少運行時間
- 12. 如何在ODP.NET中減少Connection.Open的超時時間
- 13. 如何在調用API時減少C#中的執行時間?
- 14. 如何減少GC CPU使用率的峯值
- 15. 減少運行時間
- 16. 減少時間問題?
- 17. 減少時間複雜度
- 18. 地圖時間戳減少
- 19. 減少時間查詢
- 20. 減少NSManagedObjectContect保存時間
- 21. 減少月時間戳PHP
- 22. 減少構建時間 - Hudson
- 23. 如何在Java中減少數組?
- 24. Java - 分配的空間不減少
- 25. 如何減少XMLHttpRequest時滯?
- 26. 如何減少PiBeacon的廣告時間間隔?
- 27. 如何減少python中的多處理時間
- 28. 如何減少ASP.net MVC 2中的首次加載時間?
- 29. 如何用C++中的Msgpack減少編譯時間?
- 30. 如何減少在python中追加SQL數據庫的時間
你試過其他垃圾收集器嗎? http://www.oracle.com/technetwork/java/faq-140837.html – 2014-08-31 16:22:06