У меня есть архив, сжатый 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 , было бы интересно и полезно это знать, поэтому заранее благодарен за любые советы.

0