我正在尝试在Ubuntu上的gcc和Windows上的MSVS中使用getline函数读取行。在Windows上处理200MB文本文件所花费的时间是3秒,而在Ubuntu上花费的时间是0.1秒。两者都是X64 Release版本。
不确定为什么Windows速度较慢。有什么理由吗? Windows中是否有任何其他getline函数与Ubuntu中的性能相匹配?
#include <iostream>
#include <fstream>
#include<string>
using namespace std;
int main()
{
string line;
int num = 0;
ifstream infile;
infile.open("testdata.txt");
if (infile.is_open())
{
while (!infile.eof()) // To get you all the lines.
{
getline(infile, line);
num++;
}
}
else
printf("file not found");
cout << num;
return 0;
}