C++ 对于文件读取,何时使用filebuf

C++ 对于文件读取,何时使用filebuf,c++,file-io,iostream,filebuf,C++,File Io,Iostream,Filebuf,我将从一个只读二进制文件进行随机存取读取。ifstream的接口似乎比filebuf简单;但是有没有任何使用案例可以让filebuf提供更好的性能 更多细节:我有一个固定长度(48字节)记录的文件,将按顺序进行随机访问读取——读取1条记录,进程,读取1条记录(从别处),进程。。。。(遍历树。)文件从不更改。由于记录是固定长度的,我以后可能会使用“字符类型”,即48字节的记录,但我认为这不会对性能产生任何影响。可能是,如果您在Linux上,可能使用mmap可以解决逐位读取文件的整个问题 还是增强内

我将从一个只读二进制文件进行随机存取读取。ifstream的接口似乎比filebuf简单;但是有没有任何使用案例可以让filebuf提供更好的性能


更多细节:我有一个固定长度(48字节)记录的文件,将按顺序进行随机访问读取——读取1条记录,进程,读取1条记录(从别处),进程。。。。(遍历树。)文件从不更改。由于记录是固定长度的,我以后可能会使用“字符类型”,即48字节的记录,但我认为这不会对性能产生任何影响。

可能是,如果您在Linux上,可能使用mmap可以解决逐位读取文件的整个问题

还是增强内存映射文件?

文件中一百万的顺序——遍历树需要读取50的顺序。(通过kb树进行最近邻搜索。)然后你可能会认为我应该将整个文件读入RAM,因为该文件只有~50MB——但实际上会有大约80个这样的文件,因此读取所有文件的内存使用量会非常大。哎呀——kd树,而不是kb树。打字错误