Я начал с нескольких тестов, чтобы увидеть разницу в скорости между записью в файл и печатью на консоль, и какая разница между SSD и HDD. Моя программа просто выводит число 0-10,000,000Почему выполнение вычислений в цикле замедляет запись печати на консоль, но не записывается в файл?
Console: 6.089 file: 4.269
Я побежал этот тест до ста миллионов и последовательно видел одни и то же соотношение времен. Я также проверял изменение порядка испытаний и не видел изменения скорости.
Вот где это странно. Я изменил как printlns на .println(i*i+42/7*9-89*2%400/2);
после выполнения этого я получил
Console: 8.586
file: 4.475
Где время консоли значительно увеличилось, но время файла не сделало. В качестве окончательной странности я изменил ее на .println((i*i+42/7*9-89*2) %400/2)
, и в этом случае я действительно увидел скорость в выводе консоли.
Console: 4.352
file: 4.66
Может ли кто-нибудь объяснить эти странности? Кажется, я не могу найти причин для резких изменений скорости. Я думаю, возможно, это просто изменение количества бит, которое нужно записать, но я не могу объяснить, почему это влияет только на скорость консоли.
Любая помощь или ответы очень ценятся! Эта проблема беспокоила меня какое-то время, поэтому я подумал, что попрошу экспертов!
Вычисление почти ничего не сравнимо с IO. Если вы видите разницу, скорее всего, это проблема разминки или информация о данных, которые вы пишете. –
Я считал это, но, как я уже сказал, я провел более крупные тесты и видел такое же увеличение времени в консоли, и я также получил то же время, изменив порядок двух тестов. –