我需要確定哪些鎖是最有爭議的 - 在我的應用程序代碼中。我可以使用哪些免費工具來確定?什麼樣的免費工具可用於分析java中的鎖爭用?
回答
你可以使用JConsole的或jstack無論是在你的JDK的bin目錄。 jconsole特別允許你連接你的進程並監控線程,包括他們鎖定的資源,它可以幫助你識別死鎖狀態。
JDK有一些內置的支持 - 在unix下,殺死-3進程,在windows下,ctrl-break。這將顯示一個完整的線程轉儲,然後檢測到任何死鎖。另外,在線程dusmp中,您可以看到哪些線程擁有哪些鎖,並將它們相互比較。
您不需要爲了獲得線程轉儲而終止進程 - 只需運行jstack
kill -3命令不會終止進程。它只是表明它,但過程將繼續運行。 – 2013-01-06 13:47:56
你也可以在eclipse的調試器中查看它。在「調試」視圖中,使用視圖工具欄上的小下三角菜單打開「Java->顯示監視器」。
當您懷疑發生死鎖時,暫停應用程序(在調試視圖中選擇應用程序,然後按下調試視圖工具欄上的暫停按鈕),如果發生死鎖,則阻塞線程將變爲紅色。如果展開這些線程,您可以看到鎖爭用。
如果您擁有該代碼,則可以創建/查找收集爭用統計信息的Lock實現。如果不是,請嘗試其他帖子中建議的工具。
- 1. 什麼是一些有趣的,免費的,用於Java的開源動態分析工具?
- 2. 用於創建exe的免費工具
- 3. 有什麼好的免費HttpDebugging工具
- 4. 適用於Linux的Java分析工具
- 5. 你會推薦什麼樣的免費開源開發工具?
- 6. Abaqus免費免費分析?
- 7. 用於Java的免費類GUI網頁設計工具?
- 8. 什麼靜態分析工具可用於C#?
- 9. 找到競爭條件/死鎖的C#/。NET分析工具
- 10. 是否有可用於Eclipse的免費幫助創作工具?
- 11. 我可以使用什麼工具來分析Asp.Net中的ViewState?
- 12. 您使用Visual Studio的免費外部工具是什麼?
- 13. 用於Eclipse的免費UML工具/插件可以生成Java代碼?
- 14. 對於免費XSLT工具的建議
- 15. 什麼樣的工具可用於打包源代碼
- 16. 分析線程同步鎖爭用
- 17. Java開發人員非常喜歡什麼非免費工具
- 18. 可配置的免費差異工具?
- 19. 有沒有免費的websphere 5分析工具?
- 20. Windows上的Tomcat - 免費分析和指標收集工具?
- 21. 有什麼工具可以分析Java堆外的內存使用情況?
- 22. Web應用程序的免費樣機工具?
- 23. 有什麼工具可用於分析瀏覽器處理頁面的時間
- 24. 免費的SQLite GUI工具?
- 25. 什麼工具或技術可用於分析磁盤使用情況?
- 26. 尋找一個免費的,時間採樣分析器用於C++
- 27. 什麼是解析/分析IIS日誌的工具 - 理想的免費/開放源代碼?
- 28. 什麼工具(免費或其他)對於開發和調試C#/ C++有用?
- 29. 用於堆分析的工具
- 30. 用於分析OCaml代碼的工具
我認爲這個問題涉及應用程序運行期間有關鎖爭用的一些統計信息 - 這是系統中的熱門鎖。 – akarnokd 2009-06-25 13:43:36