2012-02-06 36 views
3

是否有一個Eclipse插件或其他工具或技術可以搜索整個Java項目(和/或整個工作區)並顯示(以列表/可排序格式)項目中所有公共方法的調用頻率?那就是「什麼代碼使用什麼其他代碼」最?查找Eclipse工作區中最常用的Java方法

我非常熟悉CTRL-SHIFT-G或CTRL-G的用法;一直使用它。我也熟悉Call Hierarchy視圖。我正在尋找的結果可能像在工作區中上做搜索>引用>工作空間CTRL-SHIFT-G)每個方法每類和清點/計數結果的數量來描述每次都有最終的,可排序的輸出,如下面的例子。

上面的概念是要了解哪些類/方法獲得最多使用(不在運行時;在此問題中「used」!=「已執行」),以優先考慮單元測試一個非常大的項目。我想更多地開始使用JUnit(多於非一般,那就是),並且尋找最常用方法的想法似乎是一個開始的好地方。

例如,給出三類,ClassAClassBClassC,我想類似這樣的總結:在JDK

 
    Method          Number of calls 
    ClassB.methodThatDoesSomethingMundane()     134 
    ClassC.methodThatDoesCoolStuff()       78 
    ClassC.methodThatDoesImportantThing()      71 
    ClassA.constructor()          63 
    ClassB.aDifferentBoringMethod()       37 
    ClassA.getSomething()          19 
    ... etc ... 
+1

定義*使用*。你的意思是尋找那個?你的意思是代碼最調用特定的類/方法嗎?什麼? – adarshr 2012-02-06 15:44:12

+0

我會從最重要,最脆弱的東西開始。 – 2012-02-06 15:45:20

+0

@PattMauler:*(不是回答,因此評論)* ...我絕對記得「代碼覆蓋」工具正是這樣做的。現在,雖然典型的「代碼覆蓋率」工具只顯示一個「運行」是否已經走上了一條路,但我99.9%的百分比相信我已經看到代碼覆蓋率工具也顯示了多久調用一次這些方法。已經很長一段時間了,我還沒有使用代碼覆蓋率工具... – TacticalCoder 2012-02-06 16:34:40

回答

1

你可以使用一個分析器(例如VisualVM的,jvisualvm.exe/bin /文件夾)。

2

JArchitect,一個商業產品,似乎有一個有趣的metrics module

方法排名:MethodRank值是通過對方法依賴的圖形應用谷歌的PageRank算法來計算。應用中心0.15的同值使得MethodRank的平均值爲1.

建議:應該更仔細地測試MethodRank較高的方法,因爲此類方法中的錯誤可能更具災難性。

我沒有測試它,但它值得一試。

但我不認爲它會工作,如果你使用Java反射。

+0

儘管此鏈接可能回答此問題,但最好在此處包含答案的重要部分並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – gnat 2012-11-13 07:48:59

+1

你是對的!我編輯了我的答案。 – 2012-11-13 08:23:42