4
我已經從我的Java編程書中得到了一個簡單的程序,只是添加了一點。System.out.print導致延遲?
package personal;
public class SpeedTest {
public static void main(String[] args) {
double DELAY = 5000;
long startTime = System.currentTimeMillis();
long endTime = (long)(startTime + DELAY);
long index = 0;
while (true) {
double x = Math.sqrt(index);
long now = System.currentTimeMillis();
if (now >= endTime) {
break;
}
index++;
}
System.out.println(index + " loops in " + (DELAY/1000) + " seconds.");
}
}
這將返回128478180 loops in 5.0 seconds.
如果我的if語句前加上System.out.println(x);
,然後我在5秒內循環次數下降到400,000,是由於System.out.println()
延遲?還是隻是x
沒有被計算,當我不打印出來?
打印到控制檯必須是最差的事情,你可以做性能明智的。 IO操作需要很長時間。 – Tunaki
System.out.println是一個IO操作,是的,它可以影響任何程序的性能 – Sanjeev
好的問題,我不明白downvotes。僅僅因爲這對你來說是微不足道的,並不意味着你應該倒下。 – Maroun