Shuld
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору О балансировке алгоритмов сжатия "внутри" одного метода сжатия. Bulat_Ziganshin Несколько месяцев назад мы разговаривали на эту тему. Я "много думал", ставил эксперименты и пришел к определенным выводам. Во многом - это вопрос идеологии. Какую идеологию выбрать? 1 Вариант. (очевидный?) Допустим, есть данные 200 Мб, из которых 100 Мб - тексты ($text) + 100 Мб - архивы ($compressed). Предположим, что в методе сжатия -m9, тексты ($text) будут сжиматься 40 сек и результат будет 20 Мб архивы ($compressed) будут сжиматься плохо, за те же 40 сек получится 90 Мб. Итоговый результат 20+90=110 Мб за 40+40=80 сек. Здесь выравнивание по времени сжатия. Постепенно я пришел к выводу, что такой вариант на самом деле несбалансированный, а по-настоящему сбалансированный вариант следующий. 2 Вариант. (неожиданный?) Те же данные. тексты ($text) будут сжиматься 40 сек и результат будет 20 Мб архивы ($compressed) будут сжиматься плохо, поэтому берется алгоритм, который сожмет до 92 Мб, но за 4 сек! Итоговый результат 20+92=112 Мб за 4+4=44 сек. Одинаковой будет скорость "убирания" лишних Мб. В случае текста (100 Мб - 20 Мб)/40 сек = 2 Мб/сек В случае архивов (100 Мб - 92 Мб)/4 сек = 2 Мб/сек Такой вариант не будет тратить лишнего времени на сжатие трудносжимаемых данных. При этом, правда, мы не получим "максимально возможного" сжатия. Но если оно нужно, можно его "впихнуть" в отдельный метод, допустим -mx. Поскольку FreeArc и так обычно на больших данных обходит по степени сжатия WinRAR/7z, то потеря степени сжатия вряд ли будет критичной, но по скорости получится еще большее преимущество. Добавлено: Bulat_Ziganshin По интерфейсу. После сжатия я бы хотел, чтобы окно процесса (которое мы обсуждали) не закрывалось автоматически, а оставалось. А кнопка "Отменить" заменялась бы на "Закрыть". Или это где-то уже есть в настройках? Я не нашел. |