Ru-Board.club
← Вернуться в раздел «Программы»

» FreeArc (часть 4)

Автор: Bulat_Ziganshin
Дата сообщения: 25.01.2012 19:36

Цитата:
Скачались? Убираю раздачу?

убирай


Цитата:
также хочется узнать как дела с 0.70 финал, что еще планируется сделать, в чем задержка?

xlzma requires 2.5 gb on 2gb box: let limit_memory num method = return method -- ограничение памяти для метода используется только при сжатии
не установлена галка "ассоциировать с другими архивами", он все равно ассоциирует (при установке с нуля отключены оба ассоциирования!)
zipx compression
rep+tor => Decompression error -9! (fix in multi_de_compress?) - может проявиться в unarc.exe/sfxes!
"a a.zip" и "a a -tzip" должны работать как "a a.zip -tzip"
при прерывании сжатия в zip остаётся временный архив
при открытии zip с 250 тысячами файлов тормозит 10 минут
lzma.exe - проверить что решены проблемы с неполным чтением/записью буфера
external compressors stdin+stdout: http://forum.ru-board.com/topic.cgi?forum=5&topic=35164&start=500#7
fread/fwrite => FullRead/Write (в lzma и Example-C)
CreateProcess with STARTUPINFO with hStdInput, hStdOutput and hStdError handles set to file handles you opened (either real files or memory mapped files should work).
stdinout.cpp
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682499(v=VS.85).aspx
4x4:lzma-x64: может, проблема в compress_all_at_once?
английский unarc-dll\readme.txt
improved tooltips 1125, 1227, 1176
* "Open .tar.gz and similar archives in one step" is broken (tested on .tar.bz2 and .tar.gz).
* "Up" button in filelist could have some icon (something like: )
выбираем несколько архивов - Extract Here - Overwrite? - Yes to All



Цитата:
Будете ли вы интегрировать в основной алгоритм PackJPG и TTA 2.0? И будет ли возможность создавать многотомные архивы?

tta уже есть. PackJPG пока особо не стремлюсь, может кто другой сделает. многотомные - в 0.80 запланированы


Цитата:
а может лучше в среп интегрировать?
если вы взялись за полную переработку алгоритма, то может лучше сразу наделить его всем лучшим  

дело в том, что srep имеет недостатки в сравнении с rep, поэтому я хочу оставить текущее положение дел, когда он цепляется только как внешний алгоритм для nt[> кому очень нужно, а внутри fa заменить rep на его продвинутый вариант, имеющий некоторые преимущества srep, но ни одного из его недостатков
Автор: Shuld
Дата сообщения: 04.12.2012 19:15
Rep

Рассмотрю основные особенности, которые выяснил при экспериментах со сжатием больших объемов информации.
Типовая строка параметров rep может выглядеть так:
-mrep:1g:lXX:cYY:d4m:sZZ+… (параметр lXX обычно сокращается до XX)

Среди этих параметров самыми малозначимыми являются параметры : d4m:sZZ. Основными параметрами являются:
-mrep:1g:XX:cYY
Поясню на примере все той же папки, что участвовала в декабрьском тесте. Размер сжимаемых данных 757 517 055 байт. Метод сжатия – модификации метода –m85 = -mrep:1g:64:c32+xlzma:4mb:h512k:fast:128:mc8.
Метод t, с Размер архива, байт
Автор: Bulat_Ziganshin
Дата сообщения: 26.09.2011 07:56
Profrager
http://freearc.org/download/testing/unarc2011-09-26.7z - теперь в загружаемых cls dll выполняются вызовы CLS_INIT и CLS_DONE, и выгружаются сами dll. проверь плиз. вместо op==-1 надо перехватывать op==CLS_DONE

там есть тестовая cls-test.dll (исходник simple_codec.cpp), которая это демонстрирует:


Код: C:\>UnarcDllExample.exe t a.arc

simple_codec.cpp: 1

event("filename", 0, 0, "Arc.exe")
event("read", 0, 0, "")
event("read", 0, 0, "")
event("read", 0, 0, "")
event("read", 0, 0, "")
event("read", 0, 0, "")
event("read", 0, 0, "")
event("read", 0, 0, "")
event("write", 3, 0, "")
event("write", 3, 0, "")
event("quit", 0, 0, "")
FreeArcExtract() was successful

simple_codec.cpp: 2
Автор: Bulat_Ziganshin
Дата сообщения: 04.12.2012 19:22
для l/s - допустимо. степенью 2 должен быть параметр с
Автор: Profrager
Дата сообщения: 26.09.2011 17:05
Bulat_Ziganshin

Цитата:
http://freearc.org/download/testing/unarc2011-09-26.7z - теперь в загружаемых cls dll выполняются вызовы CLS_INIT и CLS_DONE, и выгружаются сами dll. проверь плиз. вместо op==-1 надо перехватывать op==CLS_DONE
спасибо, все работает (ток я unarc.dll компилил с SVN'а - очень удобно смотреть что поменялось в коде).

Цитата:
кстати, FA поддерживает и использование stdin/stdout
только этот метод какой-то не очень стабильный. И это не упрек в сторону фриарка, т.к. сам пытался реализовать клиент-хост передачу данных через stdin/out, и натыкался все на те же грабли - в некоторых случаях работает, в некоторых - нет. Так что вовсе отказался его использовать.

Цитата:
я попробовал zrle5 на 3 своих тестовых файлах - везде получилось хуже. можешь сам посмотреть
ну вот delta, например, тоже далеко не всегда дает выигрыш. Так же и тут - если на каких-то данных дает прирост (это тема для любителей многочисленных тестов), то можно включить к основным алгоритмам, возможно и с некоторыми доработками.

Добавлено:

Цитата:
http://freearc.org/download/testing/dll100.7z
http://freearc.org/download/testing/dll700.7z
http://freearc.org/download/testing/MsOfficeBCJ.7z
последние 2 архива не доступны для скачивания.

Добавлено:
З.Ы. я пока тож плюс в rle не смог получить.
Автор: vasulpr
Дата сообщения: 25.01.2012 20:56
Bulat_Ziganshin
спасибо за ответ!
судя по запланированному 0.70 мы до конца зимы не увидим.
Автор: Shuld
Дата сообщения: 04.12.2012 19:34
И еще.
Если для первой папки взять февральский FreeArc, то
FreeArc 0.67 (February 5 2012) Creating archive: proba5.arc using rep:1gb+4x4:lzma:4mb:h512kb:fast:128:mc8
Memory for compression 1206mb, decompression 1082mb, cache 16mb
Compressing 1,731 files, 757,517,055 bytes. Processed 0.0% 1.8% 4.7% 9.5% 11.0% 11.9% 13.0% 14.4% 16.0% 17.6% 19.4% 20.0% 27.6% 30.1% 32.1% 34.7% 36.0% 36.8% 37.7% 38.4% 39.1% 39.9% 40.6% 41.3% 41.9% 42.6% 43.2% 43.9% 44.7% 45.3% 46.0% 46.7% 47.5% 48.2% 48.8% 49.6% 50.4% 51.3% 52.4% 53.5% 54.2% 55.6% 56.3% 57.0% 57.9% 58.6% 59.4% 60.1% 60.9% 61.8% 62.7% 63.5% 64.2% 65.0% 65.7% 66.3% 67.0% 67.7% 68.5% 69.2% 70.0% 70.6% 71.2% 72.0% 72.5% 73.1% 73.8% 74.4% 75.0% 75.6% 77.3% 78.0% 78.6% 79.3% 80.1% 80.8% 81.4% 82.1% 82.7% 83.3% 84.1% 84.7% 85.3% 86.0% 86.6% 87.2% 87.8% 88.6% 89.2% 89.8% 90.8% 91.6% 92.8% 93.7%100.0%

Compressed 1,731 files, 757,517,055 => 426,874,565 bytes. Ratio 56.3%
Compression time: cpu 176.50 secs, real 46.62 secs. Speed 16,249 kB/s
All OK

Результат получается медленнее существующего, но плотнее примерно на 0,1%. Без подгонки параметров rep.
Автор: Bulat_Ziganshin
Дата сообщения: 26.01.2012 03:14
http://freearc.org/download/testing/fazip02.zip

FAZip 0.2:


исправлена ошибка: программа возвращала код ошибки -9 при распаковке цепочек методов, например rep+tor
значительно ускорен REP благодаря идее Жени Шелвина
REP получил новый параметр :c, означающий размер хешируемых блоков. Для
:l512 по умолчанию :c128, для :l511..257 по умолчанию :c256 и т.д.
по умолчанию размер хеш-таблицы для REP равен min(:b/:c*4,:b/4)


Бенчмарки:

1. Сжатие с rep:1g
старый REP: 4,531,060,447 -> 3,046,406,598: 67.23% Cpu 364 mb/s (11.872 sec), real 333 mb/s (12.989 sec) = 91%
новый REP: 4,531,060,447 -> 3,064,484,898: 67.63% Cpu 529 mb/s (8.174 sec), real 1341 mb/s (3.221 sec) = 254%

2. Сжатие с rep:1g+xtor:3
старый REP: 4,531,060,447 -> 1,283,663,780: 28.33% Cpu 105 mb/s (41.137 sec), real 270 mb/s (16.026 sec) = 257%
новый REP: 4,531,060,447 -> 1,286,102,352: 28.38% Cpu 87 mb/s (49.671 sec), real 581 mb/s (7.443 sec) = 667%

Для сравнения чистый 4x4:tor:3
4,531,060,447 -> 1,698,510,452: 37.49% Cpu 83 mb/s (52.260 sec), real 586 mb/s (7.380 sec) = 708%

Т.е. теперь не будет потерь в скорости -m1 от добавления REP, при этом сжатие с REP выше в 1.32 раза





fixed bug: error -9 was reported when decompressing files with methods like rep+tor
improved speed of REP using Eugene Shelwien's idea
REP has new parameter :c denoting hashed chunk size. For :l512 default is :c128, for :l511..257 default is :c256 and so on
Default hash size for REP is min(:b/:c*4,:b/4)


Some benchmarks:

1. Compression with rep:1g:513
old REP: 4,531,060,447 -> 3,046,406,598: 67.23% Cpu 364 mb/s (11.872 sec), real 333 mb/s (12.989 sec) = 91%
new REP: 4,531,060,447 -> 3,064,484,898: 67.63% Cpu 529 mb/s (8.174 sec), real 1341 mb/s (3.221 sec) = 254%

2. Compression with rep:1g:513+4x4:tor:3
old REP: 4,531,060,447 -> 1,283,663,780: 28.33% Cpu 105 mb/s (41.137 sec), real 270 mb/s (16.026 sec) = 257%
new REP: 4,531,060,447 -> 1,286,102,352: 28.38% Cpu 87 mb/s (49.671 sec), real 581 mb/s (7.443 sec) = 667%

For comparison, pure 4x4:tor:3
4,531,060,447 -> 1,698,510,452: 37.49% Cpu 83 mb/s (52.260 sec), real 586 mb/s (7.380 sec) = 708%

It means that now REP may be added to the FreeArc -m1 compression method without losing even bit of speed, while compression becomes (in this case) 1.38x tighter
Автор: Bulat_Ziganshin
Дата сообщения: 26.09.2011 18:20

Цитата:
последние 2 архива не доступны для скачивания.

http://freearc.org/download/testdata/dll100.7z
http://freearc.org/download/testdata/dll700.7z
http://freearc.org/download/testdata/MsOfficeBCJ.7z


Цитата:
SVN'а - очень удобно смотреть что поменялось в коде)

для того его и держим я сделал иначе чем ты предлагал, но надеюсь что будет работать не хуже. а порядку так больше


Цитата:
stdin/stdout
только этот метод какой-то не очень стабильный.

а в чём нестабильность выражается?
Автор: Bulat_Ziganshin
Дата сообщения: 07.12.2012 20:41
Обновлён http://freearc.org/download/research/delta15.zip (исправлены ошибки и чуть улучшено сжатие)
Автор: vishyakov
Дата сообщения: 26.09.2011 19:14

Цитата:
я попробовал zrle5 на 3 своих тестовых файлах - везде получилось хуже.

Да действительно, на одиночных файлах не получается. Я кажись догадался, в чем дело. Я когда жал каталог windows, zrle стоял до разбиения на солид-блоки. Соответственно, каждый блок содержал в среднем больше файлов, отсюда и получился плюс.

Однако, это навело меня на мысль, может быть имеет смысл ставить некоторые процессоры до разбиения на solid-блоки...
Автор: Edison007007
Дата сообщения: 08.12.2012 12:16
Булат, в двух последних альфа-версия (может даже и раньше), криво работает АркИнфо, если использовать внешние компрессоры, при нажатии появляется окно "Ни один архив не выбран!"... На версии от 22 мая нормально всё
Автор: Shuld
Дата сообщения: 26.01.2012 17:13
Bulat_Ziganshin

Обращаю внимание на 2 вещи, связанные с новым rep-ом и сжатием Rep+tor:3

На маленьких объемах данных типична такая ситуация:
Метод Размер Время, с
Автор: Bulat_Ziganshin
Дата сообщения: 26.09.2011 20:33
vishyakov
проще увеличить размер солид-блоков. а вообще ничего удивительного. есть такое эмпирическое правило - если тебе удалось улучшить сжатие, значит ты в чём-то ошибся . хотя изредка оно всё же не срабатывает
Автор: Bulat_Ziganshin
Дата сообщения: 08.12.2012 12:22
Edison007007
7z.dll не стёр?
сорри, я неправильно тебя понял. ошибку подтверждаю, исправлю
Автор: egor23
Дата сообщения: 26.01.2012 17:27
Bulat_Ziganshin

Цитата:
FAZip 0.2:

в rep были изменения относительно rep новый2 от 14.01.12?
Автор: Bulat_Ziganshin
Дата сообщения: 10.12.2012 18:25
Новая альфа-версия:Delta: улучшены скорость и сжатие, также доступно как delta15.zip
исправлено: вылетало при попытке посмотреть АркИнфо на архиве, использующем неопределённый [в arc.ini внешний] метод
исправлена ошибка в AES-NI: не работало в отсутствии facompress.dll
i18n: изменены тултипы 1543, 1544. Если вы поддерживаете один из переводов, пожалуйста поправьте его!

New alpha version:Delta: improved speed and compression, also available as delta15.zip
fixed bug: unable to show ArcInfo if external method used in the archive is absent from arc.ini
fixed bug in AES-NI support: it not worked w/o facompress.dll
i18n: changed tooltips 1543, 1544. If you maintain a translation, please update them!
Автор: vishyakov
Дата сообщения: 29.09.2011 14:07

Цитата:
проще увеличить размер солид-блоков

это приведёт к соответствующим осложнениям при распаковке, особенно файлов по-одиночке. А то, о чём я говорил - нет.
Автор: Bulat_Ziganshin
Дата сообщения: 26.01.2012 18:53

Цитата:
Чего я не понимаю?

ты даже не сообразил, что форумскую табличку можно оставить пустой, а затем редактировать как обычный текст

Добавлено:
egor23
я только исправил одну ошибку. как ни странно, это даже чуть ухудшило характеристики программы

Добавлено:

Цитата:
На разных компьютерах, при разном соотношении скорости процессора и устройств ввода/вывода (винт) различие межу методами rep:1g+xtor:3:4m:h128k и rep:1g+xtor:6:4m:h1m:l2 во времени сжатия может быть больше или, наоборот, отсутствовать! Но смысл останется - на больших объемах нет смысла применять  rep:1g+xtor:3:4m:h128k!


C:\Testing\rep\017>fazip rep:1g:c256:256+4x4:tor:6:4m:h1m:l2 D:\Testing\dll4g.dll nul
100%: 4,531,060,447 -> 1,161,045,257: 25.62% Cpu 39 mb/s (109.981 sec), real 292 mb/s (14.821 sec) = 742%

C:\Testing\rep\017>fazip rep:1g:c256:256+4x4:tor:3:4m:h128k D:\Testing\dll4g.dll nul
100%: 4,531,060,447 -> 1,278,123,155: 28.21% Cpu 90 mb/s (48.204 sec), real 608 mb/s (7.103 sec) = 679%
Автор: Bulat_Ziganshin
Дата сообщения: 29.09.2011 14:09
новая альфа:GUI: option to show/hide hidden files (Hidden/System on Windows and ".*" on Linux) and Ctrl-H key toggling the option
CUI: at the end of program execution, prints "\n" even on Windows
CLS: implemented CLS_INIT/CLS_DONE and cls-*.dll unloading when unarc.dll is unloaded
CLS: pass all parameters to the cls-*.dll, delimiting them with ':' as usual
CLS: now supports execution in directories with non-Latin1 names (and non-Latin1 method names too)
unarc.dll: added encryption support
unarc.dll: in the case of error/UserCancel, wait for all decompression threads to be finished before returning from FreeArcExtract()
unarc.dll: Addons\Unarc-DLL directory now contains readme-rus.txt describing dll usage and examples written in C++/Delphi/InnoSetup
unarc.dll: a lot of changes in FreeArcExtract() callbacks, see readme-rus.txt for details
arc.ini: improved bzip2 support
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
Автор: slech
Дата сообщения: 10.12.2012 18:50
Bulat_Ziganshin, новое окошко про ассоциацию файлов в 7zip(либо я давно не ставил альфы).
Вобщем идея интересная:
Автор: Shuld
Дата сообщения: 26.01.2012 20:50
Я не знаю, что такое fazip.


Добавлено:
Он же не пишет на винт, а отправляет в nul?
Какое это отношение имеет к сжатию данных в реальных условиях?

Добавлено:
Загрузка CPU - это только часть процесса. И для быстрых методов не самая большая часть.

Добавлено:

Цитата:
ты даже не сообразил, что форумскую табличку можно оставить пустой, а затем редактировать как обычный текст

Так я делаю.
Но не получается взять целиком Excel-евскую или Word-овскую табличку и вставить. Только по одной ячейке. Застрелиться можно.
Автор: slech
Дата сообщения: 10.12.2012 22:25
Windows 7 x64 - 16 ГБ.
Folder --> FreeArc -> Create Folder.arc

Пробую распаковать:
Автор: vasulpr
Дата сообщения: 29.09.2011 14:33

Цитата:
новая альфа:

надеюсь к финальной версии осталось немного!

PS: Спасибо за двуязычную историю изменений!
Автор: Bulat_Ziganshin
Дата сообщения: 10.12.2012 22:32
slech
и?
Автор: slech
Дата сообщения: 26.01.2012 23:10

Цитата:
Но не получается взять целиком Excel-евскую или Word-овскую табличку и вставить. Только по одной ячейке. Застрелиться можно.

Может пригодится http://theenemy.dk/table/
Автор: kalpak
Дата сообщения: 29.09.2011 15:06
Profrager
а precomp оригинальном системные функции запускались напрямую с kernel32/msvcrt?
или так же с packJPG.dll, если нет, то как ты их перенаправил в dll без модификации precomp.exe ?

я к чему все это, к тому что раз cls-precomp использует объекты синхронизации и packJPG подменный чтобы распаковывать "налету"
может как то можно их и упаковывать, потому как при работе прекомпа фал постепенно увеличивает размер (хотя дома та же версия программы ведет себя по-другому, имея размер 0 байт все время перед окончанием)
Автор: slech
Дата сообщения: 10.12.2012 23:32
Bulat_Ziganshin
ну распаковать не могу.

[more=arc lt]

Код:
>arc lt "e:\win xp pro sp3 x32.arc"
FreeArc 0.67 (December 10 2012) listing archive: e:\win xp pro sp3 x32.arc

Archive type: FreeArc
Total bytes: 3,274,538,369
Compressed bytes: 1,508,736,843
Ratio: 46.0%

Directory blocks: 1
Directory, bytes: 11,772
Directory, compressed: 3,837
Solid blocks: 4
Avg. blocksize: 781 mb

Compression memory: 112 mb
Decompression memory: 96 mb
Dictionary: rep:96mb+xlzma:16mb grzip:652kb rep:536kb+xtor:536kb

Archive locked: -
Archive comment: -
Recovery info: -
SFX size: -
Headers encrypted: -
Encryption algorithms: -

Pos Size Compressed Files Method
-----------------------------------------------------------------------------
31 0 0 5 storing
31 660,193 41,226 111 grzip:652kb:m1:l32:h15
41,257 542,796 497,726 103 rep:536kb:96:d4mb:s32+4x4:tor:536kb:h4mb:c3
538,983 3,273,335,380 1,508,197,891 5 rep:96mb:96:d4mb:s32+exe+delta+4x4:lzma:16mb:h4mb:normal:24:mc8
-----------------------------------------------------------------------------
224 files, 3,274,538,369 bytes, 1,508,736,843 compressed
All OK
Автор: Bulat_Ziganshin
Дата сообщения: 27.01.2012 01:02

Цитата:
Он же не пишет на винт, а отправляет в nul?
Какое это отношение имеет к сжатию данных в реальных условиях?  

а ты не думаешь, что на других машинах соотношение скорости диска и процессора может на порядок отличаться от твоего?
Автор: Vladimyr
Дата сообщения: 01.10.2011 12:03

Цитата:
множество изменений в колбеках FreeArcExtract
->

множество изменений в вызовах FreeArcExtract

это ж вроде по-русски

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275

Предыдущая тема: Punto Switcher (часть 3)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.