gpt4 book ai didi

java - C++ getline() 比 Java 的 readLine() 慢

转载 作者:行者123 更新时间:2023-11-30 01:21:59 25 4
gpt4 key购买 nike

<分区>

我正在尝试读取一个 250K 行的文件,并将正则表达式应用于这些行中的每一行。然而,代码比 Java 的 readline 函数慢得多。在 Java 中,所有解析都在大约 10 秒内完成,而在 C++ 中则需要 2 分钟以上。我见过亲戚C++ ifstream.getline() significantly slower than Java's BufferedReader.readLine()?并在 main 之上添加这两行:

std::ifstream::sync_with_stdio(false);
std::ios::sync_with_stdio(false);

其余代码(我对其进行了简化以消除正则表达式可能导致的任何延迟):

#include "stdafx.h"
#include <ios>
#include <string>
#include <fstream>
#include <iostream>


int _tmain(int argc, _TCHAR* argv[])
{

std::string libraryFile = "H:\\library.txt";
std::ios::sync_with_stdio(false);
std::string line;

int i = 1;

std::ifstream file(libraryFile);
while (std::getline (file, line)) {
std::cout << "\rStored " << i++ << " lines.";
}

return 0;
}

这个例子看起来很简单,但即使是大多数帖子中建议的修复方法似乎也不起作用。我已经使用 VS2012 中的发布设置多次运行 .exe,但我无法达到 Java 的时代。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com