我試圖使用Eclipse的VisualVM launcher。這看起來相當不錯,只是如果VisualVM來不及執行我的應用程序分析,似乎會產生一個實例。我的應用程序在分析器初始化之前完成執行;一旦啓動,就會彈出一個錯誤窗口,說:cannot open requested application
。然後它顯示運行Eclipse的VM(標記爲「org.eclipse.equinox.launcher.Main」)。我怎樣才能讓它等待我的申請並進行適當的分析?VisualVM的發射誤差
回答
我知道那個問題。只有窮人的解決方案,我一直想出是:
- 在源代碼中設置一個斷點
- 在調試模式
- 啓動程序連接探查
- 讓程序繼續
它只是需要一點時間VisualVM的注入配置代理到您的虛擬機,我敢肯定,它僅允許遠程分析。
作爲替代,你可以使用YourKit,它可以從一開始就配置您的應用程序。通過這種方式,剖析代理是在VM啓動注入:
java -agentpath:c:\yourkit\yjpagent.dll FooClass
我很好奇,爲什麼VisualVM的不提供這個選項,因爲它技術上是可行的。無論如何,我覺得調試技巧是在Eclipse中一個很好的解決方案,除非你也有興趣在類加載等
這可能是太晚了,但我有同樣的問題,並設置斷點,然後在開始調試模式根本沒有幫助。我最終發現VisualVM將其臨時數據保存在文件夾%TMP%/ hsperfdata_ [用戶名]中,我的Windows機器上的文件夾是C:\ Users \ Jacob \ AppData \ Local \ Temp \ hsperfdata_Jacob。事實證明,該進程沒有足夠的權限來訪問該文件夾,所以我放寬了它的權限,現在它工作得很好。希望這對於有同樣問題的人有用!
在Windows上,以管理員身份運行Eclipse。
在Windows 8上這對我很好。謝謝Andres! – 2014-06-16 04:22:58
不客氣。 – Andres 2014-06-16 06:45:51
這是一個愚蠢的解決方案,但工程。這裏有雲:
添加一個無限循環封裝到應用程序,說:「雖然(真){} your_app」。
時機噪聲也將拉平爲你的程序運行更長的時間。
- 1. 爲petapoco射擊誤差
- 2. socket.io - 發射功能之間的差異
- 3. 發生錯誤的時差
- 4. 誤差的memcpy發生
- 5. 突發誤差的WebPack
- 6. VisualVM socket.read
- 7. 使用Javascript - 觸發誤差
- 8. 角度誤差[$注射器:modulerr] - 注射器NOMOD
- 9. 的VisualVM通過ssh
- 10. MySQL的更新觸發誤差
- 11. VisualVM,Scala和Ubuntu?
- 12. VisualVM和Self Time
- 13. Java分析 - VisualVM
- 14. VisualVM和GlassFish
- 15. JMX vs VisualVM?
- 16. visualvm歷史圖
- 17. VisualVM報告
- 18. 沒有發射活動發現錯誤
- 19. 色差反射/折射 - 眼睛校正
- 20. 能的VisualVM內的NetBeans
- 21. 未定義錯誤的警報發射
- 22. 奇怪的錯誤發射Java(Eclypse)
- 23. Cronjob發射錯誤的時間表。
- 24. Excel的折射率匹配等於或大於值誤差
- 25. 顯示誤差在2個標籤映射的jQuery
- 26. 動作映射名稱空間誤差與struts2的
- 27. socket.io發射三次發射
- 28. 瞭解visualvm的堆圖
- 29. VisualVM中的加載類
- 30. VisualVM的JVM calltree快照
難道你只是Thread.sleep(),而它自己的工作呢? – 2012-08-09 21:21:48
@RyanAmos這也是可能的,我在調試模式結束之前完成了這個任務。我不喜歡用'Timer.sleep'將它與時間放在一起,要麼你必須等到'睡眠'消失或者連接時間過長。 – 2012-08-09 21:23:34
YourKit太貴了。謝謝您的幫助! – 2012-08-10 14:07:39