c++ - 从 .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});
}
}
}
解决方案
正如您 在此处看到的, ext
文件系统在读/写操作方面NTFS
要快得多,因此它在 linux 上的运行速度要快得多。所以我认为没有办法让它在 Windows 上更快。
推荐阅读
- android - 在 Kotlin 中更改 Android TabLayout 中选项卡的大小
- c++ - ACDOtoolkit - 未定义的参考运行 test.c
- git - 如何在不保存的情况下成功退出“vimdiff”(用作“git”的合并工具)?
- javascript - 如何访问数组中对象的属性
- ios - iOS钥匙串API线程安全吗?获取重复项异常
- python - 虚拟环境问题:无法在虚拟环境中导入已安装的包
- mysql - 我可以在mysql中仅使用别名将总和添加到另一个总和中吗
- bootstrap-4 - 为什么使用 bootsrtap col-sm 时文本重叠?
- windows - Ngrok with vagrant 在 Windows 10 中不起作用
- c# - 在 Windows 窗体应用程序中解析传感器输入