我試圖剖析我的Java應用程序,只是爲了找出大部分時間花在哪些方法上。鑑於對TPTP的反應不佳,我想我會給Java VisualVM一個去。在Java VisualVM中看不到我自己的應用程序方法
這一切似乎都相當簡單 - 除了我似乎無法得到任何一致或有用的東西外。
我似乎無法看到與我自己的代碼有關的任何東西 - 我得到的只是一大堆調用java *。方法之類的東西。
我試過限制儀器只有我自己的軟件包,這似乎減少了儀器的方法數量,但我似乎從來沒有看到我自己的。
每次運行時,我都會收到不同數量的方法,從10到1000不等。 我已經嘗試在我的應用程序的開始時進入睡眠狀態,以確保在應用程序開始執行任何有趣的操作之前啓動並運行VisualVM,以確保它在有趣的東西運行時進行分析。
有什麼我必須做,以確保我的課得到儀器? 是否有計時問題? ..喜歡,必須等待類加載等? 我也嘗試了兩次運行代碼的膽量,以確保所有的代碼都得到了鍛鍊...
我只是在Eclipse中運行一個帶有main的應用程序。我嘗試過使用Eclipse集成,以便在啓動應用程序時啓動VisualVM - 結果相同。 我也嘗試將應用程序導出爲可運行的應用程序,並從命令行單獨運行,而不是通過Eclipse運行 - 結果相同。
我的應用程序不是一個長時間運行的web應用程序等 - 只是一個主要調用我自己的一些其他類來做一些處理,然後退出。
我很感激任何關於我可能做錯的建議! :)
謝謝!
我不知道這是否會有所作爲,但是您是否編譯了沒有任何調試信息的應用程序?或者你的應用程序使用自定義類加載器? – 2010-07-14 04:02:54
有一個小小的教訓,但簡單而有效的技術:http://stackoverflow.com/questions/266373/one-could-use-a-profiler-but-why-not-just-halt-the-program/317160# 317160 – 2010-07-14 11:59:24