Это потому, что вы синхронизируете свой терминал. Некоторые терминалы просто медленно работают при отображении / прокрутке текста. И ваш терминал буферизуется по линии, тогда как консоль eclipse, вероятно, имеет больше буферизации, что приводит к тому, что вашей программе приходится ждать вашего терминала после каждой напечатанной строки.
Попробуйте перенаправить вывод вашей программы в файл или / dev / null и рассчитайте время.
В моей системе это немного меняет ваш маленький цикл:
$ time java T
--snip - 1M lines of output--
real 0m24.746s
user 0m2.403s
sys 0m1.597s
$ time java T >output
real 0m5.172s
user 0m2.800s
sys 0m2.707s