Я получил 20,3 гигабайта файлов и папок общим объемом более 100 тыс. Штук. Я скопировал все эти файлы в один каталог из Windows 10, и мне потребовались мучительные 3 часа копирования. Выполнено.
На днях я загрузился в Linux Fedora 24, заново скопировал ту же папку и bam! Мне потребовалось всего 5 минут, чтобы скопировать его в том же месте, но в другом каталоге.
Почему Linux так быстр? А винда кропотливо медленная?
Здесь есть похожий вопрос
Является ли (Ubuntu) алгоритм копирования файлов Linux лучше, чем Windows 7?
Но принятого ответа совершенно не хватает.
linux
windows
performance
Джонс Г
источник
источник
Ответы:
Его основы разбиты на несколько ключевых компонентов всей системы: элемент пользовательского интерфейса (графическая часть), само ядро (что говорит с оборудованием) и формат, в котором хранятся данные (то есть файловая система). ).
Возвращаясь назад,
NTFS
де-факто для Windows уже некоторое время, а для основных вариантов Linux де-факто -ext
файловая система. Сама файловая система NTFS не изменилась со времени Windows XP (2001), многие функции, которые существуют (такие как сжатие / восстановление разделов, транзакционная NTFS и т. Д.), Являются функциями ОС (Windows Vista / 7/8/10). а не сама NTFS. В 2008 году уext
файловой системы был последний стабильный выпуск (ext4
). Поскольку сама файловая система определяет, как и где осуществляется доступ к файлам, если вы используете,ext4
есть вероятность, что вы заметите улучшение скорости по сравнению с NTFS; однако, обратите внимание, если вы использовали,ext2
вы можете заметить, что он сопоставим по скорости.Также может быть так, что один раздел отформатирован небольшими порциями, чем другой. По умолчанию для большинства систем используется размер кластера
4096 byte
1 , 2 , но если вы отформатировалиext4
раздел как-то16k
3, то при каждом чтении вext4
системе данные будут в 4 раза выше, чем в системе NTFS (что может означать 4-кратное увеличение числа файлов в зависимости от того, что хранится). где / как и как большой и т. д.). Фрагментация файлов также может играть роль в скорости. NTFS обрабатывает фрагментацию файлов совсем по-другому, чемext
файловая система, и с более чем 100k файлами существует большая вероятность фрагментации.Следующим компонентом является само ядро (не пользовательский интерфейс, а код, который фактически взаимодействует с аппаратным обеспечением, с настоящей ОС). Здесь, честно говоря, нет большой разницы. Оба ядра могут быть настроены на выполнение определенных задач, таких как кэширование / буферизация диска, для ускорения чтения и восприятия записи, но эти конфигурации обычно имеют одинаковые компромиссы независимо от ОС; например, кеширование может значительно увеличить скорость копирования / сохранения, но если вы потеряете энергию во время записи в кеш (или извлеките USB-накопитель), то вы потеряете все данные, которые фактически не записаны на диск, и, возможно, даже поврежденные данные, уже записанные на диск.
Например, скопируйте много файлов на USB-диск в формате FAT в Windows и Linux. В Windows это может занять 10 минут, в то время как в Linux это займет 10 секунд; сразу после того, как вы скопировали файлы, безопасно извлеките диск, извлекая его. В Windows он будет немедленно извлечен из системы, и, таким образом, вы сможете извлечь диск из порта USB, в то время как в Linux может потребоваться 10 минут, прежде чем вы действительно сможете извлечь диск; это происходит из-за кеширования (то есть Linux записывает файлы в ОЗУ, а затем записывает их на диск в фоновом режиме, в то время как без кэш-памяти Windows записывает файлы сразу на диск).
Последний - это пользовательский интерфейс (графическая часть, с которой взаимодействует пользователь). Пользовательский интерфейс мог бы быть симпатичным окном с некоторыми классными графиками и хорошими столбиками, которые дают мне общее представление о том, сколько файлов копируется и каков их размер и сколько времени это может занять; пользовательский интерфейс также может быть консолью, которая не печатает никакой информации, кроме случаев, когда это сделано. Если пользовательский интерфейс должен сначала просмотреть каждую папку и файл, чтобы определить, сколько их файлов, плюс их размер и дать приблизительную оценку, прежде чем он сможет фактически начать копирование, тогда процесс копирования может занять больше времени из-за того, что пользовательский интерфейс должен сделай это. Опять же, это верно независимо от ОС.
Вы можете настроить некоторые вещи на равные (например, кеширование диска или размер кластера), но на самом деле все сводится к тому, как все части связаны друг с другом, чтобы заставить систему работать, и более конкретно, как часто эти части кода обновляются. ОС Windows прошла долгий путь со времени Windows XP, но дисковая подсистема - это область, в которой в течение многих лет не было много TLC в ОС во всех версиях (по сравнению с экосистемой Linux, которая, похоже, видит какую-то новую FS). или улучшение довольно часто).
Надеюсь, что это добавляет ясности.
источник