Windows с улучшенной файловой системой

Windows с улучшенной файловой системой

По моим наблюдениям как разработчика Java, работающего на рабочих станциях Windows, NTFS медленнее файловых систем Linux. Вопрос в том, есть ли что-то в драйвере NTFS, что можно настроить вручную, например, выделить больше памяти для кэша? Включить некоторые экспериментальные алгоритмы? Если это недоступно, возможно, есть другая файловая система, которую можно использовать на Windows, может быть, даже коммерческая, которая быстрее NTFS?

Чтобы было ясно, я не ищу улучшения скорости компиляции для проектов Maven, я хотел бы получить общее улучшение для ОС. У меня есть ощущение, что NTFS давно устарела и медленна по сравнению с файловыми системами Linux. Мне кажется странным, что самая популярная ОС на планете имеет только одну файловую систему, которая все еще требует ручной дефрагментации. Возможно, естьявляетсяальтернатива?

Обновлять:Вот что тормозит по моим наблюдениям. Я собираю/упаковываю проект, что означает множество операций чтения/записи на диске. Система сборки кроссплатформенная (Java, Maven), поэтому я могу выполнять точно такие же действия, например, при загрузке в Ubuntu.

На Linux мои сборки как минимум на 1/3 быстрее. Отсюда вопрос о файловой системе. Извините, если не по адресу.

решение1

Хотя я бы с удовольствием увидел что-то вроде ZFS для хостов Windows, NTFS не ужасная файловая система. Она поддерживает большинство "современных" функций файловых систем (расширенные атрибуты, журналирование, ACL, как хотите), но ее тормозит Explorer и большинство других приложений, не поддерживающих ничего из этого.

Одна вещь, которая абсолютно убьет его производительность, это наличие "слишком большого количества" записей в каталоге. Как только вы пропускаете пару тысяч записей в одном каталоге, все замедляется до ползания. Буквально вся машина остановится, ожидая, пока NTFS создаст или удалит записи, когда это происходит.

Я работал с приложением, которое генерировало HTML-документы для сборок .NET; оно создавало один файл на свойство, метод, класс, пространство имен и т. д. Для более крупных сборок мы видели 20+k файлов, все аккуратно сваленные в один каталог. Машина тратила пару часов во время сборки, заблокированной на NTFS.

Теоретически Windows поддерживает плагины файловой системы, которые сделали бы возможным использование ZFS, ext3 или чего-то еще (даже FUSE). На практике API не документированы, так что вы полностью предоставлены сами себе.

Итак, поскольку вы занимаетесь разработкой на Java, можете ли вы установить на свой компьютер другую ОС или использовать виртуальную машину поверх Windows?

Также, вы можете попробовать некоторые платформенно-независимые бенчмарки файловой системы (iozone, bonnie... вероятно, есть более современные, которые я не знаю навскидку, может быть, даже несколько написанных на Java), чтобы увидеть, действительно ли вас сдерживает файловая система или что-то еще. Преждевременная оптимизация и все такое...

решение2

  • Отключить время последнего доступа
  • Отключить короткие имена файлов
  • Отключить удаление уведомлений
  • Отключить индексацию
  • Отключить ведение журнала
  • Отключить теневое копирование, предыдущие версии, квоты и общие ресурсы.
  • Включить проверку обхода траверса

Я полагаю, что реальным решением было бы переписать вашу систему сборки так, чтобы она использовала собственный API файловой системы Windows вместо самого API Unix (fopen и т. д.) под фреймворком переносимости. Но этого не произойдет, так что по сути вы застрянете с любым уровнем производительности, который они посчитают приемлемым.

Часто при использовании систем, изначально не написанных для Windows, вы обнаруживаете, что обход каталогов реализован очень плохо, поэтому убедитесь, что у вас очень плоское дерево каталогов.

решение3

Есть одна файловая система, которая поддерживается новой ОС Windows и работает быстрее, чем NTFS. Это exFAT. Есть возможность использовать ее для системного диска. Но неизвестно, какие у нее могут быть осложнения.

Конечно, вы можете использовать его для других разделов. Он быстрее при случайных операциях чтения/записи. Идеально подходит для SSD, например.

решение4

Историческая справка: БылWinFS, который добавил более структурированный слой поверх NTFS, чтобы позволить Windows работать с содержимым файлов более эффективно.

«Настоящим» преемником NTFS являетсяРеФС. Его фокус — устойчивость. Он доступен только в Windows 10 Enterprise и Windows Pro для рабочих станций. Хорошее чтение —NTFS или ReFS — как решить, что использовать.

Связанный контент