最快的文件加载方式,与操作系统无关

问题描述 投票:0回答:1

我仅限于两个要求,即它必须独立于操作系统,并且数据不保存为二进制,我需要将其保存为文本。我听说过内存映射,但被告知只能在Windows上使用它。目前,我的程序速度主要受文件加载速度的限制,因此可以提供任何帮助。到目前为止,这是我得出的最佳解决方案。

std::ifstream file(filepath);
fileContents.assign(std::istreambuf_iterator<char>(file), std::istreambuf_iterator<char>());
c++ file loading
1个回答
0
投票

速度和操作系统不可知论几乎是互斥的。如评论所述,所有主要的操作系统都提供内存映射,但是它们提供内存的方式会有所不同。 Windows具有CreateFileMapping,而posix系统具有mmap。

如果boost的组件库可以掩盖这些差异,但是我不能告诉您是哪个库,这不会令我感到惊讶。

当然,还有整个“过早的优化是万恶之源”的问题,您确定标准库提供的内容不够“好”吗?

© www.soinside.com 2019 - 2024. All rights reserved.