我试图打印 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读取文件有什么优点?