use*_*883 5 c++ file-io stl cross-platform memory-mapped-files
我想提出一个看似简单的问题,我无法找到答案.是否有一个FAST现代算法用于文件输入和/或输出,可以使用所有符合标准的C++编译器进行编译,适用于所有操作系统而无需外部库?
除了我之外,你有没有看过其他人研究过的东西?这样的算法甚至可能吗?
谢谢你的任何建议
有以下限制:
可以使用所有符合标准的C++编译器进行编译,适用于所有操作系统而无需外部库吗?
您几乎限制自己使用标准库文件IO功能.也许POSIX函数(取决于你正在考虑的"所有符合标准的C++编译器"的子集).
如果它们不够快,你将不得不开始放弃一些限制.
这与"算法"无关.
在将数据写入文件时,您受操作系统的支配 - 内存映射文件"快速",因为您只是写入内存,而操作系统会在自己的时间内将其同步.如果操作系统不支持它,那么在这方面你运气不好 - 除非你想要实现自己的内存映射层.
顺便提一下,POSIX有mmap,所以如果你限制自己使用POSIX兼容系统,那你就没事了.