20240627 处理超大文件方案

如何读取和处理和输出一个拥有超多数据的文件
C++提供了一些用于读写大文件的库和技术,例如:
- 使用fstream库:C++标准库中的fstream库提供了对文件的读写操作。可以使用ifstream类进行文件的读取,使用ofstream类进行文件的写入。通过逐行或逐个字符读写文件,可以避免一次性加载整个文件到内存中。
- 使用mmap函数:mmap函数可以将文件映射到内存中,通过内存映射的方式进行读写操作。这种方式可以减少对内存的直接访问,提高读写效率。
- 使用缓冲区:可以使用缓冲区来减少对磁盘的频繁读写操作。通过设置适当的缓冲区大小,可以在一定程度上减少内存的使用量。
- 使用多线程:可以使用多线程来并行读写大文件,提高读写效率。通过将文件分成多个块,每个线程负责读取或写入一个块,可以充分利用多核处理器的性能。
- 使用异步IO:C++11引入了异步IO机制,可以通过异步方式进行文件的读写操作。异步IO可以在读写操作进行的同时执行其他任务,提高程序的并发性能。
https://cloud.tencent.com/developer/information/读写大文件C%2B%2B(内存过载)-video
使用mmap函数
https://www.cnblogs.com/TenosDoIt/p/3157596.html
http://blog.csdn.net/wcyoot/article/details/7363393
1 |
|
缩小范围映射完全符合规范的小范围数据是ok的
但是奇怪的就是
我自己的生成数据的脚本写出来的数据总是不符合规范
反正读到后面指针老是为空的时候还在读取数据西巴
300000*33之前的数据都没问题
300000*33之后的数据有问题,很大的问题
是不是少生成一行数据
傻了,后面生成的数据没调用过
生成超多数据的python脚本
1 | import random |
Comments
Comment plugin failed to load
Loading comment plugin