为什么Windows中的getline函数与Ubuntu相比较慢

时间:2016-09-09 18:37:36

标签: c++ windows ubuntu visual-studio-2015

我正在尝试在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;
}

0 个答案:

没有答案