OS X Finder: почему для последовательного копирования файлов требуется меньше времени, чем для копирования всех сразу?

Пример:

  • Выберите файлы размером 10x2 ГБ, затем перетащите их в другое место.
  • Перетащите каждый файл размером 2 ГБ в нужное место по отдельности последовательно (10 раз).

Я тестировал это на нескольких версиях OS X и компьютерах Apple, и последний пример всегда выполняется быстрее.

  • Почему последовательная мода перетаскивания работает быстрее?
  • Тем не менее, почему Finder просто не выполняет пакетные операции таким же образом? Я, должно быть, что-то упустил(а)…

Примечание. Это вопрос, который балансирует на грани того, чтобы выйти за рамки этого сайта, но, тем не менее, его стоит задать :)


Результаты одинаковы независимо от порядка (пакетный/ручной), в котором это выполняется.

Укажите в своем первоначальном вопросе, если вы используете многопроцессорный:  > About This Mac > System Report... > Hardware.
Укажите в исходном вопросе, как вы избежали использования системного кеша между двумя первыми копиями?
@danielAzuelos Да… четырехъядерный 2,6 ГГц i7. Тот же результат на двухъядерном iMac версии 07.
Затем, если ваша система почти пуста (только ядро, Finder плюс несколько стандартных демонов на весь экран), параллельные операции могут выполняться почти в 4 раза быстрее, чем последовательные.
Почему вы не ответили на вопрос Даниэля Асуэлоса: « Укажите в исходном вопросе, как вы избежали использования системного кеша между двумя первыми копиями? »? Вы перезагружаетесь между пакетным тестом и тестом отдельных файлов? Вы копируете просто в другое место на внутреннем диске или на внешнем диске? Если внешний, то какой?
@user3439894 user3439894 bc есть ложное предположение, которое я тестировал только в таком порядке (сначала пакетная обработка, затем ручная). Я отредактировал вопрос, чтобы уточнить, что порядок не имеет значения.
Я ничего не предполагаю, просто пытаюсь выяснить, перезагружались ли вы между различными методами копирования файлов. Кроме того, копируете ли вы только в другое место на внутреннем диске или на внешнем диске, и какие это диски, жесткий диск или твердотельный накопитель и т. Д. Кроме того, насколько быстрее «быстрее» и как вы синхронизируете операции.
Сделал несколько быстрых тестов сам. Я не вижу существенной разницы. Случай с 10 сразу, кажется, выполняется последовательно. В моем случае я пробовал SSD на SSD и SSD на HDD. В обоих случаях МБ/с записи на диск и МБ/с чтения были примерно одинаковыми, показывая, что кеш не использовался. Корпус HDD явно упирается в его скорость ~100MB/s. Использовал XRG и iStatMenus для отображения скорости диска.
@Gilby Это хорошая информация ... На какой OSX вы работаете?
@njboot у меня 10.11.4

Ответы (1)

Я думаю, что в вашем примере вы копируете все файлы на один и тот же диск. Если средство поиска пытается выполнить запись в несколько мест (или чтение из нескольких мест) на одном и том же жестком диске, оно будет замедляться из-за времени доступа к диску. Легче (быстрее) читать (или записывать) один файл целиком, чем десять файлов одновременно.

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

Вы можете повторить тест, используя 3 отдельных диска (при условии, что доступ к этим дискам не осуществляется через одну и ту же шину (USB3/Thunderbolt и т. д.). Это может быть интересно протестировать.