近期,科技圈传来了一则关于Linux文件系统优化的好消息。索尼公司的工程师Yuezhang Mo再次为Linux内核提交了针对exFAT文件系统的补丁,不仅解决了多项性能问题,还带来了前所未有的删除效率提升。
exFAT,这一由微软于2006年推出的文件系统,旨在优化闪存设备如U盘和SD卡的性能,同时保持跨平台兼容性。随着时间的推移,微软于2012年推出了64位版本的exFAT,并逐步替代了老旧的FAT32格式。到了2019年,微软更是宣布Linux内核将支持exFAT,进一步推动了其跨平台的发展。
Yuezhang Mo工程师对于exFAT在Linux上的性能优化并非首次。早在2022年,他就通过优化目录遍历逻辑,在Linux 6.2内核中实现了exFAT性能的显著提升,性能提升幅度达到了57%,为后续的优化工作奠定了坚实的基础。
而此次Mo工程师提交的补丁,更是带来了多方面的改进。他不仅修复了堆栈随机损坏、错误返回值以及自引用簇导致的死循环等问题,还移除了大量的冗余代码,使系统更加精简和高效。
最引人瞩目的改进,莫过于删除效率的优化。在启用了discard选项后,系统能够批量释放闲置的存储块,而不是之前的逐簇操作。这一改变使得删除大文件的速度得到了极大的提升。据测试显示,删除一个80GB的文件,时间从原来的4分46秒(约287秒)缩短至2秒以内,效率提升了惊人的172倍。
discard选项的引入,原本是为了让文件系统能够实时通知存储设备释放闲置块,但逐簇操作的方式却大大拖累了性能。新补丁通过批量处理连续的存储簇,不仅避免了软锁死的风险,还大大提高了删除操作的速度。开发者可以通过Linux内核邮件列表查看这一完整补丁的详细内容。
此次优化不仅极大地提升了用户体验,也为高性能存储设备适配exFAT铺平了道路。随着越来越多的设备开始支持exFAT文件系统,这一优化将为用户带来更加流畅和高效的使用体验。
Mo工程师的这一贡献也再次证明了开源社区的力量。通过不断的技术创新和优化,开源社区正不断推动着技术的发展和进步,为用户带来更加优质和高效的产品和服务。