近日,索尼工程师 Yuezhang Mo 提交了 Linux 补丁,除了修复 exFAT 堆栈损坏、错误返回等问题外,还大幅升级了文件性能,将删除 80GB 文件的时间从 287 秒缩短至 2 秒,效率提升了 172 倍。
exFAT(Extensible File Allocation Table)是微软于 2006 年推出的文件系统,专为闪存设备(如 U 盘、SD 卡)优化,旨在解决 FAT32 的局限性,同时保持跨平台兼容性。
微软于 2012 年推出 64 位 exFAT(Extensible File Allocation Table)文件系统,逐步替代老旧 FAT32 格式。微软于 2019 年宣布 Linux 内核支持 exFAT,推动跨平台兼容性。
索尼工程师 Yuezhang Mo 于 2022 年通过优化目录遍历逻辑,在 Linux 6.2 内核中,提升 exFAT 性能 57%,为后续改进奠定基础。
这名工程师近期再次提交补丁,修复堆栈随机损坏、错误返回值及自引用簇导致的死循环,并移除冗余代码。最显著的改进是删除效率优化,在启用 discard 选项后,系统会批量释放闲置存储块,而非逐簇操作。测试显示,删除 80GB 文件的时间从 4 分 46 秒(约 287 秒)降至 2 秒以内,效率提升 172 倍。
discard 选项允许文件系统实时通知存储设备释放闲置块,但逐簇操作会拖累性能。新补丁通过批量处理连续簇,避免软锁死风险,开发者可通过 Linux 内核邮件列表查看完整补丁。