近期,一位开发者在更新Linus的官方内核仓库时,惊讶地发现了一个不寻常的新分支——noref-filemap-read-with-llm,暗示着AI参与了内核代码的编写。Linus,通常以批评低质量代码著称,此次竟然亲自指导Claude Code写代码,并在最新的补丁说明中承认,他全程带着AI参与了项目,改变了核心代码、测试用例、审查和文档草稿。经过测试,8线程并发读取同一文件的吞吐量达到了原来的三倍。
这个新分支涉及Linux内核的内存管理机制,主要利用页面缓存来优化文件数据的读取。在多线程读取同一文件的场景中,CPU需要不断修改内存块的引用计数,造成了严重的性能瓶颈。Linus曾测试发现,此操作导致99.92%的开销占用了CPU的总线带宽。
Claude Code的任务远不止简单的代码补充。它参与了方案的实现、测试程序的编写,以及潜在问题的梳理,形成了一次完整的工程尝试。补丁说明的清晰度也得到了保证,为其他维护者提供了重要的背景信息。
在Linus的测试中,使用了搭载Core i7-8565U的笔记本进行8线程的并发读取测试,结果表明吞吐量提升了约三倍,而单线程的提升则为10%。这一显著差距源于线程同时读取同一文件时,内核通过页面缓存避免了多次的存储设备访寻。
Linus的补丁通过延迟释放缓存内存,减少了共享引用计数的争抢,从而在受保护的读取区间内提高了效率。这一方法特别适用于多线程共享同一文件的情况。
值得注意的是,在新分支发布的第二天,Linus的仓库中新出现了一个叫assoc-array-fixes的库,此库用于键值对对象存取的数据结构,通过AI修正了过去代码中的错误。Linus借助AI对复杂、难以理解的函数进行重构,最终发现并修复了四个自2013年以来潜伏的Bug,因此这次AI的应用不仅限于新代码,还帮助揭示了多年的潜在缺陷,极大提高了内核的稳健性。
发表评论