首页 > 解决方案 > 从 .txt 文件读取数据并放入向量时,Linux 比 Windows 快得多。我将如何加速 Windows 来做同样的事情?

问题描述

我有用于数据的 .txt 文件(100MB - 700MB)。在读取这些文件并将它们放入向量时,Linux 的速度提高了 20-30 倍。这是系统问题,还是我可以做些什么来加速 Windows?

我在每个系统上运行了数百次相同的代码。两个系统都有一个 64 位编译器(没有它我得到一个 badAlloc 抛出)。

我减少了结构中的变量数量以简化执行

   struct Data //Create all possible data that would be created or imported from data.
{
    double month, day, year, hour, min, seconds, open, high, low, close, volume;
};

  vector<Data> matrix;

  void createData (ifstream &dataFile, double tick, double tickA, string name) //Imports data into program.
{
    double month, day, year, hour, min, seconds, open, high, low, close, volume;
    char delim;

    if (dataFile.is_open())
    {
        while (dataFile >> month >> delim >> day >> delim >> year >> hour >> delim >> min >> delim >> seconds >> delim >> delim >> delim >> open >> delim >> high >>
               delim >> low >> delim >> close >> delim >> volume)
        {
            matrix.push_back({month, day, year, hour, min, seconds, open, high, low, close, volume});
        }
    }
}

标签: c++linuxwindowsvectorstream

解决方案


正如您 在此处看到的, ext文件系统在读/写操作方面NTFS要快得多,因此它在 linux 上的运行速度要快得多。所以我认为没有办法让它在 Windows 上更快。


推荐阅读