Почему буферизация в C ++ важна?

Я пытался напечатать Hello World 200 000 раз, и это заняло у меня целую вечность, поэтому я должен остановиться. Но сразу после того, как я добавил массив char в качестве буфера, это заняло менее 10 секунд. Почему?

Перед добавлением буфера:

#include <iostream> 
using namespace std;

int main() {
        int count = 0;
        std::ios_base::sync_with_stdio(false);
        for(int i = 1; i < 200000; i++)
        {       
                cout << "Hello world!\n";
                count++;
        }
                cout<<"Count:%d\n"<<count;
return 0;
}

И это после добавления буфера:

#include <iostream> 
using namespace std;

int main() {
        int count = 0;
        std::ios_base::sync_with_stdio(false);
        char buffer[1024];
        cout.rdbuf()->pubsetbuf(buffer, 1024);
        for(int i = 1; i < 200000; i++)
        {       
                cout << "Hello world!\n";
                count++;
        }
                cout<<"Count:%d\n"<<count;
return 0;
}

Это заставляет меня задуматься о Java. Каковы преимущества использования BufferReader для чтения в файл?

18
задан Francesco Boi 5 March 2019 в 14:18
поделиться