我读到 mmap 比 fileinput 有优势,因为它会将页面读入内核页面缓存并在用户地址空间中共享该页面。而 fileinput 实际上将一个页面带入内核并将一行复制到用户地址空间。因此,文件输入会产生额外的空间开销。
所以,我打算转向 mmap,但我想从高级 python 黑客那里知道它是否可以提高性能?
如果是这样,是否有类似的使用 mmap 的 fileinput 实现?
如果您知道的话,请向我指出任何开源代码。
谢谢
mmap 获取一个文件并将其保存在 RAM 中,以便您可以像字节数组或大数据结构一样对其进行索引。
如果您以“随机访问”方式访问文件,那就要快得多——即执行大量 fseek()、fread()、fwrite() 组合。
但是,如果您只是读入文件并处理每一行一次(比如说),那么它不太可能明显更快。事实上,对于任何合理的文件大小(请记住,使用 mmap 时,所有文件都必须适合 RAM——否则会发生分页,从而开始降低 mmap 的效率),它可能是无法区分的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)