У меня есть архив, сжатый PIXZ (уровень- -9
), содержащий около 4000 файлов (упорядоченных, как страницы в книге): сжатый размер ~ 670M. В настоящее время я программно обращаюсь к этим файлам стандартным способом, т.е.
pixz -x <compressed_file_name> < tarball.tpxz | tar x -O
На основании метрик, использующих time
, извлечение файла занимает в среднем 1,7 секунды. Поскольку это часть программного процесса, я хотел сократить это время, если это возможно, поэтому я подумал о том, чтобы разбить архив tpxz
на три меньших сегмента ~ 200M (каждый из которых содержит ~ 1000 файлов), ожидая, что pixz -x
будет работать значительно быстрее против любого из этих трех сегментов, чем против оригинала ~ 600M. (Я могу предсказать, какой из трех сегментов содержит файл, необходимый для процесса.)
Однако, к моему удивлению, метрики времени для сегментов 200M идентичны метрикам для оригинала: поиск / декомпрессия в среднем по-прежнему составляет 1,7 секунды. Поскольку это противоречит как интуиции, так и результатам в экстремальном случае - поиск / декомпрессия против -9
сжатого тарбола, содержащего один файл, завершается за тривиальное время - мне любопытно, почему моя стратегия сегментации потерпела неудачу и была ли Любые другие стратегии, которые люди могут порекомендовать для улучшения производительности поиска в pixz
по сравнению с большими файлами: 1,7 секунды, безусловно, приемлемо, особенно с учетом того, что вы экономите на затратах на хранение, но более быстрое время было бы неплохо.
Если существует некоторый порог размера архива и / или номера архивного файла, после которого время завершения остается примерно постоянным для заданий поиска / распаковки pixz
, было бы интересно и полезно это знать, поэтому заранее благодарен за любые советы.