SunkaZlo Цитата: Действительно, бывает случаи, когда по дефолту ставишь ультра, а он пишет, что закончит часа через два
...
И ещё, нужно делать юзерфрендли. 95% людей (в т.ч. я) не хочет разбираться в 100500 параметрах сжатия.
Выходит, вы хотите, чтобы программа несколько раз анализировала возможное время сжатия разными методами. Но ведь программа пишет время окончания "только" после анализа файлов и "только" после начала упаковки. Тестовый запуск сжатия игры/файлов/документов на 4 ядерном процессоре 2,67 ГГц тратит порядка 20 секунд на каждых 10,000 файлов только для анализа, так сказать "что будем сжимать".
После анализа файлы начинают сжиматься выбраным методом (см.ниже)и имеем предположительное время, фиксируем его. Теперь прерываем сжатие, удаляем временные файлы.
Дальше - вы хотите видеть возможную степень сжатия. Как ее узнать? Наверное вы хотели бы, чтобы программа сама выбрала несколько файлов, да еще и разного типа, и попыталась их сжать? То-есть снова запускаем анализ содержимого этих "контрольных" файлов и приступаем к сжатию.
А как сжимать? вы же не хотите разбираться в 100500 параметрах?
Тогда программе нужно уметь самой выбрать нужный алгоритм. И самое простое это запустить брутефорс. Алгоритмов сжатия много (встроенные + внешние из комплекта Powerpack) и каждый имеет свои опции. Тот же lzma - у него 8 параметров, и различные их комбинации могут дать на выходе различную степень сжатия.
Выбираем самый быстрый режим, ждем завершения упаковки и апроксимируем результаты на все колличество файлов. Дальше меняем опции и параметры некоторых методов, меняем режимы и снова переходим к сжатию...
То есть: или ждете 2 часа и получаете "ультра"-сжатые файлы, или солнце успеет сгореть, пока вы получите результаты анализа, хотя бы приблизительно.