1
我想測試我的代碼執行速度, 我的代碼:如何在android中測試代碼的執行速度?
public static String foo() {
final long startTime = System.currentTimeMillis();
try {
// my code here
long final endtime = System.currentTimeMillis();
System.out.println ("Total execution time:" + (endtime - startTime));
return msg;
} Catch (GeneralSecurityException e) {
return "ERROR";
}
}
但執行該代碼多次(重複試驗),我發現同樣的代碼執行總額之間的差額後。我認爲這是因爲系統加載了後臺進程。有一個更好的方法嗎?
代碼運行需要多長時間?如果它快速完成(少於一秒),您需要多次運行併除以運行次數。另外,因爲前者使用單調時鐘,所以比'System.currentTimeMillis()'更喜歡'System.nanoTime()'。 – fadden
@fadden是它在1秒內運行,所以沒有辦法得到真正的代碼執行時間沒有系統加載過程影響它?此外,謝謝你nanopime建議:) –
它可能沒有任何關係的後臺進程。移動設備在閒置時以低功耗運行,並且在有一定時間負載之前不要將時鐘加速。如果你的代碼完全在上升階段運行,它不會像CPU全速運行那樣快。另一方面,由於熱節流,時鐘可能會變慢。如果你在AsyncTask中運行,線程本身的優先級較低。標杆管理很難。 :-)找到一種方法來執行相同的代碼100x,然後將時間除以100。 – fadden