gal*_*tte 4 c++ file random-access
我有大文件,包含少量大数据集.每个数据集包含一个名称和数据集大小(以字节为单位),允许跳过它并转到下一个数据集.
我想非常快速地建立数据集名称的索引.文件示例大约21MB,包含88个数据集.通过使用std::ifstream和seekg()在数据集之间跳过快速读取88个名称需要大约1300毫秒,我想减少.
事实上,我正在读取大约30个字节的88个块,在21MB文件中的给定位置,需要1300ms.
有没有办法改善这一点,还是操作系统和文件系统限制?我在Windows 7 64bit下运行测试.
我知道在文件开头有一个完整的索引会更好,但文件格式没有这个,我们无法改变它.
您可以扫描文件并在单独的文件中使用密钥和索引创建自己的标头。根据您的用例,您可以在程序启动时和每次文件更改时执行一次。在访问大数据之前,在较小的文件中查找会为您提供所需的索引。