У меня есть простая программа, которую я получил из своей книги по программированию на 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.
Если добавить System.out.println(x);
до если утверждение, то мое число петель в 5 секунд идет вниз к 400,000s, является то, что из-за задержки в System.out.println()
? Или это просто, что x
не рассчитывался, когда я не распечатывал его?
Печать на консоль должна быть худшей вещью, которую вы можете сделать с точки зрения производительности. Операции ввода-вывода занимают много времени. – Tunaki
System.out.println - операция ввода-вывода, и да, это может повлиять на производительность любой программы. – Sanjeev
Хорошо заданный вопрос, я не понимаю нисходящие точки. Просто потому, что для вас это тривиально, это не значит, что вы должны понижать уровень. – Maroun