Изменения:
Примечания:
- dispack: исправлена ошибка, возникавшая на потоках >3 ГБ; по умолчанию размер блока = 8 МБ (было 64 МБ)
- Новый перевод: Турецкий
- База переводов обновлена до 7-Zip 9.22, если это что-то меняет
- GUI: если запомненные размер/положение главного окна слишком велики для текущего экрана – сбросить их в стандартные для Gtk2Hs значения
- Плиз, протестируйте обновлённый dispack на больших архивах и сообщите мне, если он продолжает сбоить
Изменения:
Примечания:
- 7z.dll: исправлена ошибка в сжатии в Deflate (zip)
- 7z.dll: добавлена быстрая распаковка Deflate (zip)
- Время на упаковку/распаковку инсталлированного MS Office (810 МБ в 5506 файлах) в .zip формат на 2600k@4.6ГГц:
Код:Упаковка, сек. Распаковка, сек. info-zip: 24.055 3.478 winrar: 25.257 4.712 7-zip: 10.156 4.649 freearc: 4.415 2.823
Изменения:
Примечания:
- 7z.dll: обновлена до 7-Zip 9.22
- 7z.dll: исправлены проблемы со сжатием в Deflate (zip)
- Бенчмарк:
Код:I:\MsOffice>timer Arc.exe -tzip a a.zip -r Compressed 5,506 files, 810,411,321 => 460,458,156 bytes. Ratio 56.8% Global Time = 4.509 = 00:00:04.509 = 100% I:\MsOffice>timer 7z a a.zip Global Time = 10.312 = 00:00:10.312 = 100% I:\MsOffice>timer zip a.zip * -r Global Time = 24.383 = 00:00:24.383 = 100%
Изменения:
- GUI: опция для показа/скрытия невидимых файлов (с атрибутом Hidden/System в Windows или именами ".*" в Linux) и кнопка Ctrl-H, переключающая эту опцию
- CUI: в конце работы печатает "\n" – теперь и в Windows тоже
- CLS: реализованы вызовы CLS_INIT/CLS_DONE, cls-*.dll выгружаются перед выгрузкой unarc.dll
- CLS: в фильтр передаются все параметры, с разделением как обычно ':'
- CLS: теперь cls-фильтры могут загружаться из каталогов с русскими (китайскими...) именами и могут сами иметь русские имена
- unarc.dll: поддержка зашифрованных архивов
- unarc.dll: в случае экстренного выхода (при ошибке или по нажатию Cancel) ждёт завершения всех тредов распаковки перед возвратом из FreeArcExtract(), советую выводить в это время на экран что-то вроде "Отмена распаковки..." поскольку это может продолжаться несколько секунд
- unarc.dll: каталог Addons\Unarc-DLL теперь содержит readme-rus.txt, описывающий использование dll, и примеры на C++/Delphi/InnoSetup
- unarc.dll: множество изменений в колбеках FreeArcExtract(), см. readme-rus.txt
- arc.ini: улучшена поддержка bzip2
Изменения:
Примечания:
- Ускорена распаковка архивов в ситуации, когда антивирус проверяет все записываемые на диск файлы
- Исправлено большинство проблем с распознаванием архивов внутри других архивов, типа a.arc.7z или a.zip.arc
- Unarc/SFX/DLL: добавлена поддержка внешних CLS-методов (загружаемых из cls-*.dll)
- Уменьшено потребление памяти при открытии архива (теперь 350-400 байт на каждый файл в архиве)
- Опция –nodata снова заработала
- Демонстрация ускорения распаковки:
Код:I:\>wget http://freearc.org/download/testdata/SysInternals.arc I:\>arc x SysInternals.arc -o+ Распаковано 93 файла, 6,348,445 => 30,449,518 байт. Степень 20.8% Время распаковки Скорость распаковки Антивирус отключен: 0.29 с 04.631 КБ/с Антивирус (MS Essentials) включен, старая версия FreeArc: 4.09 с 7.448 КБ/с Антивирус (MS Essentials) включен, новая версия FreeArc: 1.31 с 23.260 КБ/с
Изменения:
- 7z.dll: исправлена ошибка: a.7z.arc распознавался как .7z архив, если a.7z был упакован в .arc без сжатия
- GUI: выполнение exe/doc/xls файлов вместо их открытия как архивов (настраивается на закладке Интерфейс)
- GUI: ^PgUp и ^PgDn для передвижения в иерархии (в частности, чтобы открыть exe/doc/... как архивы)
- 7z.dll: команды "lt" и ArcInfo: показывает список непрерывных блоков и убраны .arc-специфичные строки
- freearc.ini: добавлены значения по умолчанию для опций сжатия.zip и сжатия.7z
- UI: исправлена неправильная статистика в конце сжатия, подобно "99,993,888 => ... байт" на 100 МБ файле
- LZMA: записывает распакованные данные кусками по 8 МБ (вместо 256 КБ)
Изменения:
- GUI: выбор файлов, обтягиванием полосы
- GUI: "Show grid lines" в настройках интерфейса
- GUI: столбец Тип файла
- UI: исправлена ошибка, если пользователь ответил Нет на вопрос "Перезаписать файл?"
- Поддержка <stdin>/<stdout> и скрытое выполнение внешних упаковщиков в FreeArc.exe, SFX, unarc.dll, т.е. GUI программах
- Поддержка <stdin>/<stdout>: исправлены ошибки
- arc.ini: добавлен bzip2 внешний упаковщик для демонстрации stdin-to-stdout режима
- Буфер Ввода/Вывода (намного повышает скорость при записи на медленные USB брелки)
- Unarc: правильно выводится размер распакованного файла размером более 4 ГБ
- facompress.dll: icl 11 -> 2011 версия (кто может провести тест изменений?)
- i18n: добавлены строки "0495 Тип архива:", "0496 arc (по умолчанию)" и "0497 Тип"
Изменения:
- Исправлена ошибка: распаковка -mex терпела неудачу на больших архивах
- -mex теперь корректно вычисляет память, необходимую для сжатия (распаковки)
- i18n: изменены некоторые тексты, добавленные в последней альфа-версии: 494, 1486, 1493. Пожалуйста, убедитесь, что ваш перевод этих пунктов соответствует Английскому источнику!
Изменения:
- Многопоточный deflate: повышена надежность; настраиваемый уровень сжатия
- GUI: вопрос об удалении старых временных файлов при запуске программы
- GUI: количество потоков сжатия (опция -mt)
- GUI: отдельная история методов сжатия для каждого типа архивов
- GUI: обновлены языковые файлы из 7-Zip 9.16
- 7z.dll: исправлена обработка .gz архивов без внутренних временных меток
- Внешний: вывод stderr внешней программы фильтра, если -di+$ был указан
- Все -m... опции передаются без изменений в 7z.dll (если -t7z/zip/.. было указано). Примеры:
Код:arc a -t7z archive.7z -m0=BCJ2 -m1=LZMA:d26 -m2=LZMA:d19 -m3=LZMA:d19 -mb0:1 -mb0s1:2 -mb0s2:3 arc a -t7z archive.7z -m0=BCJ -m1=LZMA2 arc a -tzip archive.zip -mm=BZIP2 -mem=AES192 -p1 -mt4
Изменения:
Примечания:
- 4х4, GRZip: надежная обработка ошибок
- Addons \ LZMA-x64: внешний LZMA упаковщик, который совместим с внутренним, позволяющий использовать сжатие вплоть до lzma:1g:max, если у вас достаточно ОЗУ и 4x4:lzma для внешней многопоточности
- [External compressor:XXX] sections: noheader=0 для внешних аналогов внутренних упаковщиков, <stdin> и <stdout> спецификаторы для работы без временных файлов
- ArcShellExt: подменю "Операции над архивом" для произвольных файлов, настраиваемое на закладке "Интеграция с Explorer"
- --nodates: не хранить время файлов в архиве
- unarc.dll: загружает facompress*.dll из того же каталога, что и unarc.dll и выгружает их посредством UnloadDLL () (FreeArcExtract не должен вызываться после UnloadDLL)
- Addons \ Delphi: еще один пример использования unarc.dll
- Linux: уменьшен приоритет потока для всех потоков сжатия (распаковки), за исключением основного
- LZMA-x64 readme
Для того, чтобы использовать 64-разрядную внешнюю LZMA сжатия (распаковки), добавьте содержимое arc-lzma-x64[-filter].ini в arc.ini.
Альтернативно, вы можете использовать -cfg=arc-lzma-x64[-filter].ini опцию, чтобы изменить INI-файл для одной команды.
Пожалуйста, обратите внимание, что INI-файлы обеспечивают множество командных настроек, от file-to-file до stdin-to-stdout режима.
В GUI FreeArc.exe, вы можете использовать только режим file-to-file, как настроено в arc-lzma-x64.ini.
В консольном Arc.exe, вы можете использовать любой режим, в том числе наиболее эффективный, stdin-to-stdout режим, как настроено в arc-lzma-x64-filter.ini.
Также отметим, что lzma-freearc-x64.exe поддерживает только подмножество параметров FreeArc LZMA кодека.
Выполните lzma-freearc-x64.exe без параметров, чтобы увидеть список поддерживаемых опций.
Примеры использования:
FreeArc.exe create archive -cfg=arc-lzma-x64.ini -m=lzma:d1g -t
Arc.exe create archive -cfg=arc-lzma-x64-filter.ini -m=lzma:d1g -t
Arc.exe create archive -cfg=arc-lzma-x64-filter.ini -m=rep:1g+exe+delta+4x4:b64m:lzma:d64m
- Примеры внешних упаковщиков, имеющих выгоду от поддержки <stdin> или <stdout>
[External compressor:bcj2]
mem = 50
packcmd = 7za a -m0=BCJ2 -mmt=on -si $$arcpackedfile$$.7z <stdin>
unpackcmd = 7za e -si -so $$arcpackedfile$$.7z <stdout>
packedfile = $$arcpackedfile$$.7z
[External compressor:srep]
;options = l%d (minimal match length, default=512)
packcmd = srep {options} $$arcdatafile$$.tmp - <stdout>
unpackcmd = srep -d - $$arcdatafile$$.tmp <stdin>
[External compressor:slugx]
cmem = 260
dmem = 130
packcmd = {compressor} c <stdin> : <stdout> :
unpackcmd = {compressor} d <stdin> : <stdout> :- Пожалуйста, протестируйте также 4x4 (т.е. многопоточное сжатие, обновление архива, SFX-ы) очень тщательно. Я закончил переписывать этот код, пожалуйста тщательно проверьте, стал ли он действительно надежным.