我正在实现一个高效的文本文件加载器,并在这篇文章中从 GNU grep 的作者那里找到了一些很好的建议:http: //lists.freebsd.org/pipermail/freebsd-current/2010-August/019310.html
他建议的一件事是将页面对齐的数据块读取()调用到页面对齐的缓冲区中。显然这允许内核避免一些额外的缓冲。
我一直在寻找,我还没有听到其他人支持这一说法。将 read() 调用到页面对齐的缓冲区(可能使用 mmap/posix_memalign 等分配)实际上更有效吗?如果它不是真的,那它曾经是真的吗?它是否在很大程度上取决于底层文件系统或其他类似因素?
谢谢!