Это что-то общее для всех языков программирования? Выполнение нескольких распечаток, за которыми следует println, кажется более быстрым, но перемещение всего в строку и просто печать, которая кажется самой быстрой. Зачем?Почему System.out.println так медленно?
EDIT: Например, Java может найти все простые числа до 1 миллиона меньше, чем за секунду, но при печати каждый из них на свой собственный println может занять несколько минут! До 10 миллиардов часов для печати!
EX:
package sieveoferatosthenes;
public class Main {
public static void main(String[] args) {
int upTo = 10000000;
boolean primes[] = new boolean[upTo];
for(int b = 0; b < upTo; b++){
primes[b] = true;
}
primes[0] = false;
primes[1] = false;
int testing = 1;
while(testing <= Math.sqrt(upTo)){
testing ++;
int testingWith = testing;
if(primes[testing]){
while(testingWith < upTo){
testingWith = testingWith + testing;
if (testingWith >= upTo){
}
else{
primes[testingWith] = false;
}
}
}
}
for(int b = 2; b < upTo; b++){
if(primes[b]){
System.out.println(b);
}
}
}
}
Уход за разъяснением? Я всегда находил println довольно быстрым ... – froadie
@DasWood «Кажется»? Представьте несколько тестов (время + код). – NPE
Он имеет тенденцию быть быстрым на * nix, медленно на окнах. Другими словами, именно эта консольная реализация этих ОС является фактором. – skaffman