Что может быть быстрее: перенести заархивированный файл на флэш-диск, затем распаковать его туда или перенести разархивированный файл?
Несомненно правильный ответ «передачи ип заархивированные файлы».
Конечно, передача архивированного архива всех файлов будет быстрее, но вы предусмотрели дополнительный шаг "затем распакуйте там".
Видимо, вы не знаете, что вы не можете "распаковать" локально на диске или устройстве хранения.
Файл исходного архива должен быть прочитан (откуда бы он ни хранился), а затем CPU будет выполнять декомпрессию в основной памяти.
Таким образом, чтобы разархивировать файл, уже переданный на флэш-диск, файл должен быть прочитан с флэш-диска, распакован, а затем отдельные файлы, записанные на флэш-диск.
Этот последний шаг (написание отдельных файлов) сам по себе эквивалентен последнему выбору. Таким образом, дополнительные шаги: сначала написать файл (ы) zip, а затем прочитать их обратно (но, возможно, оптимизировать с помощью кэширования), должны сделать ваш первый выбор более длительной операцией.
Другой способ взглянуть на ваш вопрос - предположить некоторую степень параллелизма между операциями и угадать время.
Таким образом, для случая 1 копирование zip-файла на флэш-накопитель требует операций чтения одновременно с операцией записи (но с некоторой задержкой блока).
Запись также требует больше времени для выполнения, чем чтение (например, см. Почему копирование одного и того же объема данных занимает больше времени, если оно распределено по многим отдельным файлам?).
После завершения копирования его можно прочитать, распаковать и записать обратно на флэш-накопитель.
Несмотря на параллельность операций чтения, распаковки и записи, общая временная шкала определяется временем записи всех несжатых файлов.
RRRRRRRRR
WWWWWWWWWW
rrr rrr rrr
DDDD DDDD DDDDD
WWWWWWWWWWWWWWWWWWWWW
time-->
Случай 2 - это простое чтение, распаковка и запись.
В этом случае требуется одинаковое количество времени для записи всех несжатых файлов.
RRR RRR RRR
DDDD DDDD DDDDD
WWWWWWWWWWWWWWWWWWWWW
Как можно ожидать, что Случай 1 будет выполнен быстрее, чем Случай 2, когда первый этап операций чтения выполняется для одного и того же объема данных с одного устройства, а последний этап записи предназначен для того же объема данных на том же устройстве
а также
Случай 1 затруднен тем, что нужно сначала выполнить копию?