我想提出一个看似简单的问题,我无法找到答案无处。 是否有FAST用于文件输入和/或输出的现代算法,可以使用所有符合标准的C++编译器进行编译,适用于所有操作系统,无需外部库?快速跨平台算法读取/写入文件在C + +
- 我发现,最快的方法就是使用内存映射文件,但不会做的原因,我们希望在所有平台上的工作
- 我们不能使用API,如Win32 API中的同一段代码因为这将使它具体的平台
- 我不想使用c,我希望算法只是纯粹的C++代码与STL如果可行的话,不是一些丑陋的c与混合asm hack/trick
- 框架或外部不属于标准C++的库不应该像wxWidgets,Qt,MFC等一样使用。
- 大这整个问题的empasis是,该算法是FAST成为可能,随着内存映射文件做它的速度线的东西,甚至更快的将是巨大的,但我知道这是不可能的
你有没有见过除我以外的其他人研究过的东西? 这样的算法甚至可能吗?
感谢您的任何建议
同意。唯一的C++标准文件I/O来自标准库,即。头文件''或''。如果你想要快速的文件I/O,最重要的是**不**一次读取/写入一个字节的文件,而是一次读取/写入大块。 –
stakx
2010-01-26 00:47:10
可以用iostream一次读取整个文件吗?那会提供性能优势,我不这么认为?不是cstdio的c头? – user258883 2010-01-26 01:02:51
一次读取整个文件仍然比映射到内存慢。 – 2010-01-26 01:11:35