Почему System.out.println такой медленный?

Это что-то общее для всех языков программирования? Выполнение множественной печати, за которой следует println, кажется быстрее, но перемещение всего в строку и просто печать, которая кажется самой быстрой. Почему?

РЕДАКТИРОВАТЬ: Например, Java может найти все простые числа до 1 миллиона менее чем за секунду - но распечатка каждого отдельного числа может занять несколько минут! До 10 миллиардов банок часов на печать!

Пример:

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 );
            }
        }
    }
}
13
задан Josh Lee 14 December 2010 в 09:46
поделиться