Boo*_*ean 5 python performance
我读到mmap比fileinput更有优势,因为它会将页面读入内核pagecache并在用户地址空间中共享页面.然而,fileinput实际上将页面带入内核并将一行复制到用户地址空间.因此,fileinput存在额外的空间开销.
所以,我打算转向mmap,但我想从高级python黑客那里知道它是否能提高性能?
如果是这样,是否有类似的fileinput实现使用mmap?
如果您知道,请指出任何开源代码.
谢谢
mmap 获取一个文件并将其保存在 RAM 中,以便您可以像字节数组或大数据结构一样对其进行索引。
如果您以“随机访问”方式访问文件,那就要快得多——即执行大量 fseek()、fread()、fwrite() 组合。
但是,如果您只是读入文件并处理每一行一次(比如说),那么它不太可能明显更快。事实上,对于任何合理的文件大小(请记住,使用 mmap 时,所有文件都必须适合 RAM——否则会发生分页,从而开始降低 mmap 的效率),它可能是无法区分的。