Изменения:
Примечания:
- lz4: новый, самый быстрый метод сжатия (плюс многопоточный xlz4)
- xlzma: уменьшено использование памяти при сжатии
- xppmd: восстановлена многопоточная работа
- 4x4, grzip: исправлены ошибки в вычислении требуемой памяти, ограничении потребления памяти и отображении прогресса операции
- До релиза 0.70 мне предстоит исправить кучу ошибок. В этот раз я сосредоточился на проблемах в многопоточной упаковке, а также добавил LZ4 чтобы исследовать внутренние ограничения FreeArc для сверхбыстрого сжатия
Изменения:
- -m#p/-m#j: определения перенесены в arc.ini
- REP: исправлена ошибка, обнаруженная Paramon111 (крешился на файлах с определёнными размерами)
- -scaX или -scXa: настроить ВСЕ домены на использование кодировки X
- -sc: поддержка синтаксиса -scD=charset
- -sc: строгая проверка синтаксиса опции
- arc.groups: в группу $compressed добавлены видеофайлы
- LZMA-x64: добавлен readme-rus.txt
- Autoplay Media Studio: readme.txt со ссылкой на демо-проект интеграции
Изменения:
- arc.ini: удалены устаревшие определения для exe2 и precomp
- unarc.dll: изменена трактовка результата, возвращаемого из колбеков "overwrite?" и "password?"; пожалуйста, обновите ваш код, использующий unarc.dll
- unarc.dll: полная английская и русская документация в файлах Addons\Unarc-DLL\readme*.txt
- unarc.dll: исправлена ошибка, возникавшая при callback==NULL
- SFX/unarc/dll: исправлены ошибки, иногда препятствовавшие распаковке зашифрованных архивов
- External: исправлена ошибка – зависание после попытки выполнить несуществующий внешний упаковщик
Изменения:
Примечания:
- Исправлена ошибка с использованием синонимов в -mc (в частности precomp, precompj, maxprecomp, maxprecompj, exe2, maxsrep)
- Определение -mm/-mm+ упрощено – теперь они всегда эквивалентны -mm=max
- unarc.dll: в readme-rus.txt добавлена информация о команде 'l'
- Обратите внимание: режим сжатия -max (-m9p) реализует максимальное сжатие с precomp+srep+dispack, а -m9j делает то же самое плюс пережатие jpeg
- Добавленные в последней альфе синонимы используются для реализации чекбоксов "Экспериментальных алгоритмов" следующим образом:
Код:lzma:1gb: -mc:lzma/lzma:max:512mb exe2: -mc:exe/exe2 srep: -mc:rep/maxsrep precomp: -mc$default,$obj:+precomp intense: -mc$default,$obj:+maxprecomp jpeg: -mc$default,$obj:+precompj intense+jpeg: -mc$default,$obj:+maxprecompj
Изменения сжатия:
Прочие улучшения:
- arc.ini: удалено устаревшее определение для -m#p (теперь оно встроено в сам arc.exe)
- -max/-m#p/-m#j получили новые определения с precomp+dispack+srep
- Новые удобные синонимы методов сжатия: precomp, precompj, maxprecomp, maxprecompj, exe2, maxsrep
- Ускорен -m1 на мультимедиа/сжатых файлах
- DisPack: улучшен поиск кода x86 и как результат – степень сжатия
- -s теперь эквивалентен "-s100k;" (было "-s20k;")
Исправления ошибок:
- SFX/Installer: больше не сжимается UPX, поскольку антивирусы ужасно тормозили при сканировании больших SFX-архивов
- АркИнфо/lt: более подробная инфа о словарях методов сжатия; Память упаковки/Память распаковки/Словарь для архивов .7z
- -rr: при добавлении большой RR записи используется не больше памяти, чем задано в -lc
- Значительно улучшен перевод: Portuguese Standard
- GUI: в текстовые поля в диалогах Add/... теперь можно включать пробелы, заключая текст опции в кавычки, например:
Код:" %Y-%m-%d" Date: " %Y-%m-%d"
- LZMA-x64: не мог использовать больше 4 гб даже в 64-битной версии
- unarc.exe/dll/sfx не могли расшифровывать метод Serpent (используемый в профилях шифрования Сильное/Максимальное)
- GUI: при открытии диалога и изменении типа архива самопроизвольно отмечался чекбокс "Сжатие"
Изменения:
Улучшение скорости REP:
- Опция -mc: позволяет изменить метод сжатия путем добавления/замены/удаления заданных алгоритмов
- Страница сжатия: добавлена вкладка "Экспериментальные алгоритмы"
- arc.ini: обновлен для совместимости с precomp042/srep3
- Исполняемые файлы precomp 0.4.2 и srep 3.0 добавлены в каталог FreeArc\bin
Новый синтаксис опции -mc (обратно-совместимый со старым):
-mc[ГРУППЫ][:]ОПЕРАЦИЯ
где ГРУППЫ может быть пустым или содержать список групп файлов, причем '$default' означает группу по умолчанию. Пример:
- $obj
- $default
- $default,$obj
Опциональный символ ':' является разделителем
ОПЕРАЦИЯ может быть одной из следующих:
- '-$group' или '$group-' означает "исключить $group при сжатии"
- '-method' или 'method-' означает "исключить method при сжатии". RAR-совместимые команды, такие как -mca-, также поддерживаются
- +method' или 'method+' означает " добавить method в начало каждой цепочки сжатия", например -mc+precomp042:c-
- 'method1/method2' означает "заменить method1 на method2", например -mc:rep/srep:mem256mb
ГРУППЫ могут быть использованы для ограничения ОПЕРАЦИИ определенными группами файлов, например -mc$default,$obj:+precomp042:c
----------------------------------------------------------
Используя эти опции, FreeArc реализует чекбоксы "Экспериментальных алгоритмов" следующим образом:
lzma:1gb: -mc:lzma/lzma:max:512mb
exe2: -mc:exe/dispack070
srep: -mc:rep/srep:mem256mb
precomp: -mc$default,$obj:+precomp042:c-:t-j
intense: -mc$default,$obj:+precomp042:c-:intense:t-j
jpeg: -mc$default,$obj:+precomp042:c-
intense+jpeg: -mc$default,$obj:+precomp042:c-:intense
Улучшения методов сжатия:
- ускорен в 4 раза благодаря многопоточности и надежному хешированию предложенному Евгением Шелвиным
- REP:c устанавливает размер хешируемых блоков (например, rep:256:c256 это более быстрая, но менее аккуратная замена rep:512)
- REP: для rep:512..257/256..129/... значения по умолчанию следующие :c128/64/...
- REP: по умолчанию hashsize = min(1/4,16/chunksize)*BlockSize
Код:D:\>old_fazip rep:1g dll4g.dll nul 100%: 4,531,060,447 -> 3,046,406,598: 67.23% Cpu 358 mb/s, real 327 mb/s D:\>new_fazip rep:1g:c256 dll4g.dll nul 100%: 4,531,060,447 -> 3,063,642,637: 67.61% Cpu 482 mb/s, real 1299 mb/s D:\>old_fazip rep:1g:32 dll4g.dll nul 100%: 4,531,060,447 -> 2,245,307,773: 49.55% Cpu 117 mb/s, real 113 mb/s D:\>new_fazip rep:1g:32:c16 dll4g.dll nul 100%: 4,531,060,447 -> 2,271,868,087: 50.14% Cpu 182 mb/s, real 274 mb/s
Остальные изменения:
- -m1: добавлен препроцессор REP (сжатие улучшилось на 10-20%, скорость осталась та же благодаря новому супер-быстрому движку REP)
- -m1: удалена отдельная группа $exe, чтобы уменьшить кол-во перемещений головки диска при сжатии
- -m2..m4: изменены настройки REP, используя возможности нового REP для улучшения скорости/сжатия
- -m3t/mex3t: изменен таким образом, что сжатие идет дольше, но распаковка быстрее
Код:D:\>old_arc a a -m1 MsOfficeBCJ.obj Compressed 1 file, 810,411,321 => 435,620,877 bytes. Ratio 53.7% Compression time: cpu 13.10 secs, real 1.76 secs. Speed 459,651 kB/s D:\>new_arc a a -m1 MsOfficeBCJ.obj Compressed 1 file, 810,411,321 => 369,825,442 bytes. Ratio 45.6% Compression time: cpu 12.68 secs, real 1.84 secs. Speed 441,616 kB/s D:\>old_arc a a -m2 MsOfficeBCJ.obj Compressed 1 file, 810,411,321 => 354,958,875 bytes. Ratio 43.7% Compression time: cpu 37.72 secs, real 5.41 secs. Speed 149,680 kB/s D:\>new_arc a a -m2 MsOfficeBCJ.obj Compressed 1 file, 810,411,321 => 353,083,639 bytes. Ratio 43.5% Compression time: cpu 36.54 secs, real 5.11 secs. Speed 158,553 kB/s D:\>old_arc a a -m3 MsOfficeBCJ.obj Compressed 1 file, 810,411,321 => 340,430,540 bytes. Ratio 42.0% Compression time: cpu 80.15 secs, real 12.00 secs. Speed 67,514 kB/s D:\>new_arc a a -m3 MsOfficeBCJ.obj Compressed 1 file, 810,411,321 => 338,976,484 bytes. Ratio 41.8% Compression time: cpu 78.91 secs, real 11.33 secs. Speed 71,530 kB/s D:\>old_arc a a -m4 MsOfficeBCJ.obj Compressed 1 file, 810,411,321 => 326,333,902 bytes. Ratio 40.2% Compression time: cpu 184.19 secs, real 24.19 secs. Speed 33,503 kB/s D:\>new_arc a a -m4 MsOfficeBCJ.obj Compressed 1 file, 810,411,321 => 324,126,352 bytes. Ratio 39.9% Compression time: cpu 182.58 secs, real 24.01 secs. Speed 33,748 kB/s D:\>old_arc a a -m3t -t enwik8 Compressed 1 file, 100,000,000 => 25,840,442 bytes. Ratio 25.8% Compression time: cpu 9.02 secs, real 1.58 secs. Speed 63,488 kB/s Testing time: cpu 12.03 secs, real 2.14 secs. Speed 46,704 kB/s D:\>new_arc a a -m3t -t enwik8 Compressed 1 file, 100,000,000 => 25,221,121 bytes. Ratio 25.2% Compression time: cpu 12.00 secs, real 2.18 secs. Speed 45,869 kB/s Testing time: cpu 8.42 secs, real 1.61 secs. Speed 61,993 kB/s
- CRC в arc/unarc/dll/sfx стал в 2 раза быстрее (500->1000 mb/s); для сравнения, CRC в facompress.dll имеет скорость 1600 mb/s
- I/O: чтение файлов для сжатия блоками по 1мб (оптимизировано под Vista/Win7)
- DICT: исправлен баг с ошибкой -6 в конце распаковки (появлялась при -m=bcj+dict -t)
- i18n: НОВАЯ локализация: Португальский Стандартный от Nuno Rego!
Изменения:
- Страница Сжатие: новые настройки; скорости перемерены на i7-2600
- Descript.ion: добавлены описания для всех файлов в каталоге bin\
- Исправлена ошибка в индикаторе прогресса (иногда он перескакивал назад)
- Улучшены тултипы 1125, 1227, 1176: если вы поддерживаете одну из трансляций, пожалуйста, переведите их заново из arc.english.txt
Изменения:
- i18n: добавлены возможность перевода для всех строк в GUI; улучшен тултип 1227
- Поддержка UNC в имени архива (arc a \\pc\share\a.arc)
- Диалог Добавить: закладки для конструирования методов сжатия/шифрования заменены на вызываемые диалоги
- Диалог Добавить: если включить опцию "Отдельные архивы для каждого файла", то строка "Выходной архив" заменяется на "Выходной каталог"
- Все диалоги: теперь галочки опций автоматически включаются, как только вы меняете содержимое опций
- Проверка на новые версии: альфа-версии обнаруживают появление новых альф и предлагают открыть Download-Alpha.aspx
- Опция --queue и галочка "Общая очередь операций для всех копий FreeArc" в диалогах Добавить/Извлечь/Настройки
- Консольная версия: 7z.dll+FreeArcCodes.dll теперь включены в комплект поставки
- Исправлено: каталог логфайла создаётся если его ещё не существует; если логфайл невозможно открыть, то регистрируется предупреждение и операция продолжается
- Моя 7z.dll: избавились от зависимости от msvcr100.dll
- unarc.dll: команда "l" также передаёт точные origsize/compsize
- API: удалены MultiCompress()/... поскольку их функциональность теперь включена в Compress()/... – т.е. вы можете сжимать с методами типа "rep+exe+lzma"
Изменения:
Примечания:
- GUI: запоминает тип архива в диалоге Сжатия
- Комстрока: восстановлена работа опций -t?, которые не работали более года!
- Добавлено "используйте -lc/-ld чтобы уменьшить требования к памяти" к сообщению "невозможно выделить память, необходимую для (рас)паковки"
- Deflate(zip) упаковка: исправлено -mt1 и уменьшено потребление памяти
- Исправлена ошибка в многопоточной распаковке, сделанная в августе
- API: добавлена MultiCompress() в пару к MultiDecompress()
- Первое изменение, будучи самым простым, наверно наиболее важно – теперь FreeArc можно спокойно использовать как zip или 7z архиватор. Просто выберите один раз нужный тип архива в диалоге и забудьте об этом.
- В связи с этим, есть вопрос – может стоить поставить zip типом по умолчанию и/или предлагать пользователю при инсталляции программы выбрать между zip, 7z и arc?
Изменения:
Примечания:
- GUI: удаление временных файлов даже с атрибутом R/O (например, файлов извлечённых из не-arc архивов для запуска)
- Опция -tzip/-t7z делает .zip/.7z расширением архива по умолчанию
- Новый FreeArc-LZMA-x64.exe, поддерживающий все опции внутреннего алгоритма LZMA (включая HT4 matchfinder) и может быть откомпилирован любым компилятором (gcc, msvc, icl, linux, 32/64-битным)
- Это означает, что теперь вы можете заменить внутреннюю 32-битную реализацию LZMA внешней 64-битной и получить свободу от 2 ГБ-порога и ускорение некоторых режимов сжатия (по крайней мере, в теории это должно работать)