Файловая система exFAT должна стать быстрее в Linux 6.2, по крайней мере, при создании файлов и каталогов, причем повышение производительности особенно заметно на процессорах низкого уровня.
В августе 2019 года компания Microsoft выпустила спецификацию exFAT и объявила о поддержке Linux, за которой последовала новая реализация exFAT в Linux 5.7 (июнь 2020 года) от Samsung. Но люди все еще работают над улучшением поддержки exFAT в Linux, и Юэ Чжан Мо (Yuezhang Mo), инженер Sony, зафиксировал набор исправлений для Linux 6.2, который сокращает повторный обход записей каталога для повышения производительности exFAT:
После обхода всех записей каталога укажите пустую запись каталога независимо от того, достаточно ли пустых записей каталога.
После этой фиксации укажите пустые записи каталога следующим образом:
1. Укажите удаленные записи каталога, если их достаточно;
2. Укажите удаленные и неиспользуемые записи каталога, которые находятся в конце цепочки кластера, независимо от того, достаточно или нет (добавьте эту фиксацию);
3. Если нет пустых записей каталога, укажите пустые записи каталога в новом кластере (добавьте эту фиксацию).Это позволяет избежать повторного обхода записей каталога, снижает нагрузку на ЦП и повышает производительность создания файлов и каталогов (особенно на низкопроизводительных ЦП).
Юэ Чжан протестировал патч на платформе NXP i.MX6 ( плата для разработки i.MX6q SABRE Lite ) с использованием карты MicroSD класса 4 и обнаружил улучшения от 14,4% до 57,4% в зависимости от того, сколько новых файлов было создано с использованием следующего кода:
1 2 3 4 |
for ((i=0;i<5;i++)); do sync time (for ((j=1;j<=1000;j++)); do touch file$((i*1000+j)); done) done |
Результаты:
Количество файлов | Перед | После | Улучшение |
---|---|---|---|
1~1000 | 25,360 с | 22,168 с | 14,40% |
1001~2000 | 38,242 с | 28,72 с | 33,15% |
2001~3000 | 49,134 с | 35,037 с | 40,23% |
3001~4000 | 62,042 с | 41,624 с | 49,05% |
4001~5000 | 73,629 с | 46,772 с | 57,42% |
Таким образом, в основном, чем больше файлов создается, тем выше относительная производительность, и это может быть заметно пользователю: новый патч экономит около 27 секунд при создании 5000 файлов на этой конкретной платформе.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.