我聽到了System.out.println();
的Java語句是昂貴的(它消耗了大量的時間)
所以我試圖評估其成本:
當我評價5個報表... The cost = 1.0
因此,我希望1條語句的成本= 0.2
但實際上我發現了The cost = 0.0
!System.out.println()的消耗時間; Java語句?
double t1 = 0;
double t2 = 0;
t1 = System.currentTimeMillis();
System.out.println("aa");
System.out.println("aa");
System.out.println("aa");
System.out.println("aa");
System.out.println("aa");
t2 = System.currentTimeMillis();
System.out.println("The cost = " + (t2-t1));
// The cost = 1.0
t1 = System.currentTimeMillis();
System.out.println("aa");
t2 = System.currentTimeMillis();
System.out.println("The cost = " + (t2-t1));
// The cost = 0.0
// Expected : 1.0/5 = 0.2 -- But Actual : 0.0
爲什麼呢?
您應該將您的基準測試中的呼叫計數增加到循環中的5000。 **然後**你可能會得到更好的輸出! – bobbel
問題在你的代碼中,而不是在'system.out.println'中。 –
你知道,即使是一毫秒,該死的成本也很高,因爲正常的CPU可以在那段時間處理幾百萬條指令? – Matthias