我的組件之一正在花費太多時間來執行。它調用大量的服務,然後調用多個dao方法。現在,有沒有什麼辦法來調用它調用的每種方法所花費的時間。
我不想在每個方法之前和之後編寫System.currentmillis
以計算所需時間,因爲方法太多。
我想我可能需要使用攔截器或可能是任何探查器可以做到這一點。我不確定,請幫忙。如何找出哪種方法花費很多時間?
回答
使用jvisualvm
這應該與JDK(如果我沒有記錯的話)。它是您的JVM的GUI,並且具有非常好的功能。看看它的features有一些截圖,以及...
而且你可以按照以下步驟將其整合爲發射在Eclipse Steps to integrate in eclipse
我正在使用這個,但是無論是我無法找到顯示方法所用時間的位置,或者它沒有顯示時間。 – 2011-03-01 09:29:36
在運行應用程序時,應該激活cpu和內存分析器/採樣器。那麼你會積極地看到熱點。一旦執行結束,它會組裝一個非常整齊的報告,您可以監督軟件阻塞的不同部分。 (見:http://visualvm.java.net/images/profiler.jpg)希望有所幫助。 – posdef 2011-03-01 10:27:20
您可以在NetBeans IDE中使用Java Profiler。
看一看這裏:http://netbeans.org/features/java/profiler.html
Java的VisualVM的是另一種選擇:http://java.net/projects/visualvm/content/。您可以將它附加到任何正在運行的Java程序,包括通過Eclipse啓動的程序。
它別看,與測量時間來發現問題。
用其緩慢來暴露它。 只要使用與無限循環相同的方法即可。
也就是說,在緩慢的時候暫停幾次,並且每次檢查每個線程的調用堆棧。 有罪的方法和代碼行將出現在多個樣本上。 檢查last paragraph of this post。
- 1. ResultSet - 光標:rs.next()花費很多時間
- 2. 爲什麼「partial_fit」方法比「fit」方法花費的時間要長很多
- 3. 如何找到哪些動態對象花費很長時間才能完成?
- 4. 我如何優化這個花費很多時間的查詢?
- 5. 火花紅移花費很多時間寫紅移
- 6. NamingEnumeration hasMoreElements方法在爲LDAP返回false時花費很多時間
- 7. Netsuite API花費很長時間迴應
- 8. WMI查詢花費很長時間
- 9. Select語句花費很長的時間
- 10. ServletOutputStream花費很長的時間寫入
- 11. MySQL查詢花費很長時間
- 12. Unix循環花費很長時間
- 13. 查詢花費很長時間DISTINCT
- 14. didUpdateLocations花費很長時間來加載
- 15. Interbase SQL花費很長時間執行
- 16. 刪除突然花費很長時間
- 17. SQL查詢花費很長時間
- 18. 查詢花費很長時間執行
- 19. ExecutionResult result.hasNext()花費很長時間返回
- 20. NewRelic:該方法的哪些部分花費時間最長?
- 21. memcached在哪裏花費時間?
- 22. django,渲染響應花費很多時間
- 23. 後臺進程通過ajax花費很多時間
- 24. android studio需要花費很多時間才能打開項目?
- 25. Hadoop安全模式恢復 - 花費很多時間
- 26. 處理花費很多時間的函數線程
- 27. Scala Enum.values.map(_。id).contains(value)花費很多時間
- 28. Android的listview花費很多時間來加載
- 29. 頁面加載花費很多時間asp.net
- 30. 作曲家更新花費很多時間
我相信大多數IDE具有分析器功能內置。 – gigadot 2011-02-28 08:11:39
@gigadot我正在使用eclipse – 2011-02-28 09:09:25
不幸的是我是Netbeans的粉絲,但我想補充一點,profiler測量的時間只會給你一個相對的估計值。這不是在方法上花費的實際時間。分析器需要將自己附加到方法並導致額外的開銷。 – gigadot 2011-02-28 17:46:25