Я пытался напечатать 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 для чтения в файл?