近期,科技圈傳來了一則關于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工程師的這一貢獻也再次證明了開源社區的力量。通過不斷的技術創新和優化,開源社區正不斷推動著技術的發展和進步,為用戶帶來更加優質和高效的產品和服務。