2013-03-10 23 views
0

我寫了一個執行算法的函數。我做了4種不同的類型,並且比較它們的執行時間沒有問題(在java中)。但是,我想將我的算法與三種現有的第三方實現進行比較。當然,由於它們是封閉源,這不是完全可能的。不過,我的應用程序有一個gui,它有一個按鈕來顯示命令,然後彈出結果。 (儘管這些不是算法的一部分,但對我而言,比較點擊執行\運行到結果顯示在屏幕上的時間就足夠了。)測量第三方軟件速度執行時間

我只是想知道最佳實踐用於比較這些不同方法的速度。我必須做點什麼,所以如果我不能想到任何事情,我想我會使用秒錶,但是,更復雜的方法顯然是更可取的。

+0

更復雜的'結束時間,startTime'我不認爲這是一個 – Cratylus 2013-03-10 19:00:52

+0

感謝suggestion-我可以用我的功能,但並不:
您可以使用System.currentTimeMillis()像下面?與第三方的,因爲我沒有訪問他們的源代碼,並且不能從我的代碼中調用他們的任何功能。我將僅僅是作爲最終用戶來測試第三方。 – user2152812 2013-03-10 19:08:11

+0

不能反編譯庫並使用反射來調用算法的方法嗎? – Cratylus 2013-03-10 19:22:35

回答

0

您可以記錄調用第三方方法的時間,並從記錄的時間中取消當前時間的差異。這會給你準確的時間。當比較

long start=System.currentTimeMillis(); 
//Call the thrd prty method 
syso("Time taken:"+(System.currentTimeMillis()-start)); 
+0

但是,感謝您的建議,我無法訪問這些方法。作爲最終用戶,我只需要使用第三方應用程序進行測試。 – user2152812 2013-03-10 19:06:26

+0

哦,我明白了......然後你做對了。 – Anubhab 2013-03-10 19:11:51

+0

秒錶的方式似乎不知何故 - 雖然我認爲即使從第三方應用程序中彈出新窗口,Windows也可能有一些時機。 – user2152812 2013-03-10 19:14:21