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

» FreeArc: бесплатный open-source архиватор - Часть 3

Автор: Bulat_Ziganshin
Дата сообщения: 24.11.2009 23:13
[External compressor:srep]
packcmd = srep $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = srep -d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp
Автор: CTACKo
Дата сообщения: 24.11.2009 23:19
так а по unarc.dll 3.4 будут каменты?
Автор: DemonAk
Дата сообщения: 25.11.2009 00:07
srep64, 6,63 ГБ (7 121 007 613 байт) -> 5,74 ГБ (6 168 390 682 байт)
rep:512:a99, 6,63 ГБ (7 121 007 613 байт) -> 5,78 ГБ (6 212 984 832 байт)
Автор: egor23
Дата сообщения: 25.11.2009 11:18
Bulat_Ziganshin

Цитата:
it's possible but not in near future. also note that it needs temporary file on decompression stage so i don't think that it will be highly popular

про temporary file поясните

Цитата:
а как сейчас объём памяти расчитывется?     

filesize*20/L + округлённое_вверх(filesize*8/L * 4/3)

расчёт памяти изменился, сейчас показывает на 1МБ больше?
Автор: frodo10
Дата сообщения: 25.11.2009 13:53
Наткнулся на такую проблему, пытался из архива сжатого FreeArc 4.0 извлечь файлы пишет такую ошибку

FreeArc 0.60 RC extracting archive: arh_20091125123336.arc
Extracting 1 file, 419.429.888 bytes. Processed 0.0%
ERROR: bad compressed data in tor:3:4mb

Что можно сделать?
Автор: Bulat_Ziganshin
Дата сообщения: 25.11.2009 13:58

Цитата:
Что можно сделать?

использовать 0.40 - http://freearc.org/download/0.40/FreeArc-0.40-win32.zip
там распаковка зависит от используемой ОС так что если не будет работать, то вспоминай под какой ОС упаковал (xp/vista/linux). ну и разумеется избавься от этого архива, перепакуй или новой версией или с более высоким сжатием (ошибка была только в режиме -m1)

Добавлено:

Цитата:
про temporary file поясните

ну данные-то считываются из файла поэтому как остальные алгоритмы - поток данных на входе и поток данных на выходе, сделать не удастся


Цитата:
расчёт памяти изменился, сейчас показывает на 1МБ больше?

да, для ускорения работы добавлен ещё один массив в 1мб


Цитата:
так а по unarc.dll 3.4 будут каменты?

а ты сам попробуй сядь за другую машину и найди в чём проблема, не имея доступа ни к исходному архиву, ни к точному описанию ошибок
Автор: Ghost2004
Дата сообщения: 25.11.2009 17:53
Спасибо огромное - 0.8-ая версия srep крута;).

Подробности будут позже - всё же те 24-27 Гб образов надо ещё из рар-ов, в которых они пока хранятся извлечь, да тар-ом затарить (или вместо тар'а использовать обычный rep freearc'а - но это уже отдельная история)... Так что свободное место придётся расчищать и перетасовывать. Так что пока на тех самых 7'906'363'392 тестирую.

Так вот, скорость декомпрессии на них - 20-25 Мб/с реального времени, 190 Мб/с - процессорного - так что, судя по всему, упёрлось всё в не самые новые диски, у меня при декомпрессии идёт чтение с 250-ки Seagate Barracuda 7200.8 ST3250823AS (8 Мб кэша), а запись (и повторное чтение - кстати, заметил что одно из серьёзных улучшений по сравнению с 0.7 - 0.8 читает данных (видно в диспетчере задач виндов) те же ~8 Гб, а 0.7 читала аж ~53 Гб (при -l256), поэтому и скорость выходит 20-25 в 0.8, а не 10-15) - на раздел 750-ки Seagate Barracuda 7200.10 ST3750640AS (16 Мб кэша у диска). То есть может тут вылезло ограничение в скорости дисков - надо же читать с одного диска, а на другой - и читать и писать на другой (и хоть диски на разных контроллерах висят, всё равно).

Хотя уже сжатые (первые 1.5 Гб после rep:1400mb:128:a99) данные пишутся со скоростью до 31 Мб/с - но потом она всё равно до 25 Мб/с падает (наверное 31 Мб/с - близко к копированию с моего неоптимального диска - 250-ки, на диск побыстрее - 750-ку, а вот если требуется ещё и с 750-ки читать, то скорость падает до 20-25 Мб/с - на этих данных - возможно они чем-то оптимальны, и много влезает в кеш винодоуз).

Что радует больше всего - скорость декомпрессии - те же 20-25 Мб/с реальных и 190 Мб/с процессорных и при мин.длине слова 128 или 256, и при мин.длине слова 16384.

А вот скорость компрессии как раз зависит от этой длины - как и должна: 19 Мб/с CPU, 15 МБ/с реальная при совпадениях от 16кб (сжатый размер - 4 572 251 124 - а в 0.7 версии был 4 600 444 500). 8 Мб/с CPU и 6.5 Мб/с реальная - при l256 (сжатый размер - 4 011 245 268; в 0.7 такие результаты достигались лишь если пройтись обыной rep:1400mb:256:h25 - rep:256+srep-l256 давала 4 009 500 500, а srep-l256+rep:256 3 999 030 405 - даже возникла идея сначала проходиться rep'ом той же мин.длины совпадения из-за того, что читалось в 6.5 раз больше, чем размер файла - т.е. уже ужатые до 6.2 Гб обычным репом данные читали при распаковке не 53 Гб, а лишь 41 Гб - 0.8-ая читает примерно столько же, сколько пишет, 7-8 Гб). Что характерно - в 0.7 версии два прохода srep -l256 таки неплохо помогали, откусывая 110 Мб - размер srep07-l256+sep07-l256 был 4 107 630 240 - всё равно заметно хуже, чем с обычной rep:1400mb:h25. В 0.8 толку во втором проходе - минимум, лишь 13 мб выигрыша - srep08-l256+srep08-l256 даёт 3 997 881 040 - а это уже меньше, чем rep:256+srep07-l256 - да и лучше и быстрее выйдет . Да, а ещё в 0.7 версии я пробовал и вариант с и пост- и пред- обработкой rep:1400mb:256:h27 - rep:256+srep07-l256+rep:256 - и от лишней обработки вышел неплохой выигрыш в 60-70 Мб - такой вариант давал 3 934 840 970 . На 0.8 я такого ещё не пробовал - впрочем, тут наверное стоит только пост-обработкой ограничиться.

Да, а ещё я поигрался с перебазировкой dll'ок так что у 0.8 версии - так что там таки удалось запустить srep -l128. Скорость сжатия с такой настройкой стала 7.16 Мб/c CPU, 6.5 реальная. Размер вышел 3 916 538 436 . Если сначала пройтись rep:1400Mb:128:a99:h27 - то получается 3 827 972 128 .

Короче, если собрать это дело в таблицу, то выйдет следующее:
Скорость и время сжатия 0.8 версии (для оригинального набора, без предварительной rep - там несколько другие цифры выходят):
l16kb - 19.196 Мб/с Cpu, 14.998 Мб/с real (Global 527.453 sec, Process 442.593 sec)
l256 - 7.915 Мб/с Cpu, 6.465 Мб/с real (Global 1223 sec, Process 1138.125 sec)
l128 - 7.160 Мб/с Cpu, 6.477 Мб/с real (Global 1227.219 sec, Process 1134.859 sec)

то же для расжатия:
l16kb - Cpu 191.235 mb/sec, real 20.236 mb/sec
l256 - Cpu 191.163 mb/sec, real 24.134 mb/sec
l128 - Cpu 190.658 mb/sec, real 21.505 mb/sec (кстати, тут уже размер прочитанного вырос почти до 9 Гб - наверное поэтому и немного помедленней)

l256 второй проход, данные уже были сжаты srep08-l256 - Cpu 178.774 mb/sec, real 27.547 mb/sec
l128 второй проход (но уже после простого rep:1400mb:128:a99:h27) - Cpu 187.313 mb/sec, real 24.360 mb/sec

Размеры:
Исходные данные - 7540.096 Мб
После rep:1400mb:128:a99 или rep:1700mb:128:a99:h27 - 5788.845 Мб (время распаковки-тестирования с 250-ки - 50.41 сек cpu, 224.38 сек real, скорость ~35 Мб/c - вероятно как раз в районе скорости того жёсткого диска)

Исходные данные сжатые рар'ом (в таком виде пока хранятся) - 5179.315 Мб

rep:1700mb:128:a99+lzma:192mb:max:bt4:128:lc8 - 4885.368 Мб (у рара выиграно лишь 294 Мб, 6% от сжатого размера - но какой ценой!) - сжал фриарком, без ухищрений с перестановками блоков или srep . Время сжатия - real - 9778 sec (из них 1177 - засчёт rep:128:a99 с tempfile), CPU - 13551 sec . Скорость сжатия в итоге - 809 Кб/с. Время тестирования с распаковкой в tempfile - 812.33 сек, без такой распаковки - 775 сек. Т.е. скорость около 10 Мб/с в обоих случаях.

srep07-l16kb - 4387.325 Мб
srep08-l16kb - 4360.438 Мб (17 Мб выигрыш - хотя это немного, основное преимущество 0.8 версии - скорость декомпрессии раза в 2.5 лучше)

srep07-l512 - 4042.495 Мб
srep07-l256 - 4023.032 Мб
srep07-l256+srep07-l256 - 3917.341 Мб
srep08-l256 - 3825.422 Мб (аж на 197.5 Мб лучше, чем 0.7!)
rep:256+srep07-l256 - 3823.758 Мб
srep07-l256+rep:256 - 3813.773 Мб
srep08-l256+srep08-l256 - 3812.676 Мб (уже только 104.7 Мб на фоне 0.7 - но вообще говоря, смысл второго прохода теряется - разница лишь)
rep:256+srep07-l256+rep:256 - 3752.557 Мб

srep08-l128 - 3735.102 Мб
rep:128+srep08-l128 - 3650.639 Mb

Вот такие пока результаты. Куда дальше лучше смотреть с этими 7.5 Гб данных - rep, lzma или ещё что? С 24-27 Гб данными подобного типа буду разбираться, как только с этими закончу. Тут же ещё с lzma надо будет дожимать... И, возможно, обычным rep'ом...

P.S. Да, а как в arc.ini правильно вставить srep внешним компрессором, чтобы можно было задавать параметр -l?
Автор: Bulat_Ziganshin
Дата сообщения: 25.11.2009 18:07

Цитата:
P.S. Да, а как в arc.ini правильно вставить srep внешним компрессором, чтобы можно было задавать параметр -l?

[External compressor:srep]
;options = l%d (minimal match length)
packcmd = srep {options} $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = srep -d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp


Цитата:
Куда дальше лучше смотреть с этими 7.5 Гб данных - rep, lzma или ещё что?

я ж говорил - rep+lzma vs srep+lzma vs srep+rep+lzma
Автор: Bulat_Ziganshin
Дата сообщения: 25.11.2009 23:30
Ghost2004
самое важное не сказал - сколько у тебя озу? пока что скорость распаковки даже с -l128 просто изумительная
Автор: CTACKo
Дата сообщения: 26.11.2009 02:29

Цитата:
так а по unarc.dll 3.4 будут каменты?
а ты сам попробуй сядь за другую машину и найди в чём проблема, не имея доступа ни к исходному архиву, ни к точному описанию ошибок
дык нет вопросов - давай по старой схеме: я выкладываю архив у себя на фтп, ты качай да изучай, вес - 3Гб.
вот lt[more]FreeArc 0.60 RC (November 18 2009) listing archive: data.arc
Pos Size Compressed Files Method
-----------------------------------------------------------------------------
31 0 0 454 storing
31 3.072.554 150.183 260 dict:3032kb:80%:l8192:m400:s100+lzp:3032kb:92%:145:h22:d1mb+ppmd:16:384mb
150.214 1.886 393 1 mm+grzip:3kb:m1:l2048:h12:a
150.607 1.563 166 1 mm+grzip:3kb:m1:l2048:h12:a
150.773 1.563 167 1 mm+grzip:3kb:m1:l2048:h12:a
150.940 1.563 165 1 mm+grzip:3kb:m1:l2048:h12:a
151.105 1.068 79 1 mm+grzip:2kb:m1:l2048:h11:a
151.184 1.068 79 1 mm+grzip:2kb:m1:l2048:h11:a
151.263 1.563 162 1 mm+grzip:3kb:m1:l2048:h12:a
151.425 1.068 79 1 mm+grzip:2kb:m1:l2048:h11:a
151.504 1.068 79 1 mm+grzip:2kb:m1:l2048:h11:a
151.583 1.563 167 1 mm+grzip:3kb:m1:l2048:h12:a
151.750 1.068 79 1 mm+grzip:2kb:m1:l2048:h11:a
151.829 911 144 1 mm+grzip:2kb:m1:l2048:h11:a
151.973 1.406 194 1 mm+grzip:2kb:m1:l2048:h11:a
152.167 911 145 1 mm+grzip:2kb:m1:l2048:h11:a
152.312 1.406 180 1 mm+grzip:2kb:m1:l2048:h11:a
152.492 1.307 301 1 mm+grzip:2kb:m1:l2048:h11:a
152.793 1.068 99 1 mm+grzip:2kb:m1:l2048:h11:a
152.892 1.068 124 1 mm+grzip:2kb:m1:l2048:h11:a
153.016 1.307 276 1 mm+grzip:2kb:m1:l2048:h11:a
153.292 1.307 276 1 mm+grzip:2kb:m1:l2048:h11:a
153.568 1.307 276 1 mm+grzip:2kb:m1:l2048:h11:a
153.844 1.307 276 1 mm+grzip:2kb:m1:l2048:h11:a
154.120 10.284 421 1 mm+grzip:11kb:m1:l2048:h14:a
154.541 1.068 142 1 mm+grzip:2kb:m1:l2048:h11:a
154.683 1.068 149 1 mm+grzip:2kb:m1:l2048:h11:a
154.832 1.068 125 1 mm+grzip:2kb:m1:l2048:h11:a
154.957 1.068 226 1 mm+grzip:2kb:m1:l2048:h11:a
155.183 210 80 1 mm+grzip:1kb:m1:l2048:h10:a
155.263 274 74 1 mm+grzip:1kb:m1:l2048:h10:a
155.337 274 73 1 mm+grzip:1kb:m1:l2048:h10:a
155.410 274 76 1 mm+grzip:1kb:m1:l2048:h10:a
155.486 274 73 1 mm+grzip:1kb:m1:l2048:h10:a
155.559 812 151 1 mm+grzip:2kb:m1:l2048:h11:a
155.710 85.201.087 40.445.336 427 rep:83mb+exe+delta+lzma:83mb:normal:bt4:128
40.601.046 8.378 5.686 1 tta
40.606.732 8.378 5.686 1 tta
40.612.418 11.386 6.800 1 tta
40.619.218 13.628 8.338 1 tta
40.627.556 10.682 6.867 1 tta
40.634.423 5.006 3.535 1 tta
40.637.958 408 361 1 rep:1kb+exe+delta+lzma:32kb:normal:32:mc16
40.638.319 10.254.060 10.080.937 8 rep:10mb+tor:10mb:c3
50.719.256 89.788 79.349 1 tta
50.798.605 44.944 29.940 1 tta
50.828.545 197.764 54.293 1 tta
50.882.838 44.998 32.779 1 tta
50.915.617 536.528 410.243 1 tta
51.325.860 461.878 225.995 1 tta
...
отрезал много тта-файлов - не влазило
...
2.006.710.381 174.083 104.786 1 tta
2.006.815.167 116.303 70.143 1 tta
2.006.885.310 28.925 17.205 1 tta
2.006.902.515 83.930 43.118 1 tta
2.006.945.633 188.361 113.796 1 tta
2.007.059.429 39.672 29.007 1 tta
2.007.088.436 128.920 87.898 1 tta
2.007.176.334 240.976 163.229 1 tta
2.007.339.563 45.477 29.836 1 tta
2.007.369.399 56.165 38.861 1 tta
2.007.408.260 50.508 32.963 1 tta
2.007.441.223 88.521 63.753 1 tta
2.007.504.976 149.118 86.624 1 tta
2.007.591.600 206.260 132.769 1 tta
2.007.724.369 140.519 93.850 1 tta
2.007.818.219 74.318 48.713 1 tta
2.007.866.932 63.019 43.821 1 tta
2.007.910.753 82.429 52.063 1 tta
2.007.962.816 20.125.405 265.683 106 rep:20mb:a99+lzma:20mb:a2:128
2.008.504.027 989.604.781 198.087.403 8.025 rep:384mb:a99+lzma:384mb:a2:128
2.206.591.430 2.336.737.872 824.537.329 24 rep:384mb:a99+lzma:384mb:a2:128
-----------------------------------------------------------------------------
28.049 files, 6.853.766.289 bytes, 3.030.853.200 compressed[/more]
Автор: Ghost2004
Дата сообщения: 26.11.2009 07:56
Скорости может ещё помог тот факт, что перед распаковкой прохожу распаковываемый файл defraggler'ом, так что если там и остаётся какая-то фрагментация исходного файла, то штуки 3-5 фрагментов - и все большого размера. Хотя может и не так уж сильно оно помогает...

Bulat_Ziganshin
3Gb на win32 - так что с ухищрениями (перенос dll'ок специально для архиваторов и /3G /USERVA=3000 - 3072 стала вешать систему, похоже драйвер видеокарты мешает) выходит основной солид блок 1700-1840 Мб, дополнительный - 950 Мб. Плюс ещё какие-то копейки остаются. Без ухищрений - только основной солид блок, было 1400 Мб, но удалось поднять эту цифру до 1700-1840 Мб путем перебазировки dll'ок для arc'а и srep'а (с /3G и даже /USERVA=2800 у меня не работает аппаратное декодирование mpeg4-avc - так что на 720p ещё хватает coreavc (да всё равно куда приятнее, когда процессор почти не грузится при проигрывании видео, даже на 1 ГГц загрузка выше 20-30% не идёт), а вот на что-то большее - приходится перезагружаться без дополнительного 1 Гб). Знаю, надо ставить win64 - но сейчас на это нету времени и сил. А также место надо расчистить (и srep тут как раз может сильно помочь ).

Кстати, lzma как лучше настраивать? Сейчас использую lzma:192mb:max:128:bt4:lc8 (или 128-160 Мб - насколько места хватит), но варианты вроде lzma:959mb:mc3:32:h768mb (или mc7:h896mb) ещё остаются - там была скорость выше, хотя на входе файл хорошо ужимался репом - но варианты с ht4 давали чуть лучшие результаты сжатия, чем rep+lzma:180mb:bt4 - и побыстрее - если с mc3 или mc7. Хотя после множественных rep ht4 не настолько хорош... В общем, как лучше lzma ускорить? lzma:96mb:max:h1gb (кстати, в bt4 хэш - только степень двойки? Или можно поставить что-то вроде lzma:64mb:max:bt4:128:h1600mb:mc50 или mc100)?

Да, а в srep+rep использовать одинаковую длину слова - если памяти на l128 хватает (меньше для дожатия с lzma:max:bt4:128 - не лучший вариант)?
Автор: Sig666
Дата сообщения: 26.11.2009 09:47
Bulat_Ziganshin
планируется в srep добавить возможность обработки папки?
Автор: ICESCREAM
Дата сообщения: 26.11.2009 10:23
А чем "@for %%i in (*.*) do @ srep бла-бла-бла" не устраивает?
Автор: egor23
Дата сообщения: 26.11.2009 12:57
Bulat_Ziganshin

Цитата:
1. сравнение сжатия srep+rep+lzma vs srep+lzma vs rep+lzma

исходные данные Nero-9.2.6.0_trial.tar 1883МБ
статистика по Nero-9.2.6.0_trial.tar ниже
http://forum.ru-board.com/topic.cgi?forum=5&topic=1406&start=1760#20
http://forum.ru-board.com/topic.cgi?forum=5&topic=1406&start=1960#16
[more=nero.bat..]
timer.exe srep.exe Nero-9.2.6.0_trial.tar Nero_srep_512
timer.exe srep.exe -d Nero_srep_512 Nero_srep_512_d
md5sum\md5sum.exe -c Nero-9.2.6.0_trial_srep_512.md5
IF ERRORLEVEL 1 (echo Nero_srep_512_d bad) & (GOTO nodel1)
del /F /Q Nero_srep_512_d
:nodel1

timer.exe Arc.exe a Nero_rep_512.arc -mrep:1024m Nero-9.2.6.0_trial.tar -di -di+$#
timer.exe Arc.exe a Nero_srep_512_lzma.arc -msrep+lzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#
timer.exe Arc.exe a Nero_rep_512_lzma.arc -mrep:1024m+lzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#
timer.exe Arc.exe a Nero_lzma.arc -mlzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#
timer.exe Arc.exe a Nero_srep_512_rep_512_lzma.arc -msrep+rep:1024m+lzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#

timer.exe srep.exe -l64 Nero-9.2.6.0_trial.tar Nero_srep_64
timer.exe srep.exe -d Nero_srep_64 Nero_srep_64_d
md5sum\md5sum.exe -c Nero-9.2.6.0_trial_srep_64.md5
IF ERRORLEVEL 1 (echo Nero_srep_64_d bad) & (GOTO nodel2)
del /F /Q Nero_srep_64_d
:nodel2

timer.exe Arc.exe a Nero_rep_64.arc -mrep:1024m:64 Nero-9.2.6.0_trial.tar -di -di+$#
timer.exe Arc.exe a Nero_srep_64_lzma.arc -msrep:l64+lzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#
timer.exe Arc.exe a Nero_rep_64_lzma.arc -mrep:1024m:64+lzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#
timer.exe Arc.exe a Nero_srep_64_rep_64_lzma.arc -msrep:l64+rep:1024m:64+lzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#
[/more]
[more=nero.log..]
timer.exe srep.exe Nero-9.2.6.0_trial.tar Nero_srep_512

Timer 3.01 Copyright (c) 2002-2003 Igor Pavlov 2003-07-10
138 mb used for hash
Compression ratio: 1974371328 -> 549576380: 27.84%. Cpu 20.032 mb/sec, real 17.784 mb/sec
Kernel Time = 4.671 = 00:00:04.671 = 4%
User Time = 98.593 = 00:01:38.593 = 88%
Process Time = 103.265 = 00:01:43.265 = 92%
Global Time = 111.235 = 00:01:51.235 = 100%

timer.exe srep.exe -d Nero_srep_512 Nero_srep_512_d

Timer 3.01 Copyright (c) 2002-2003 Igor Pavlov 2003-07-10
Compression ratio: 1974371328 -> 549576380: 27.84%. Cpu 175.744 mb/sec, real 37.858 mb/sec
Kernel Time = 7.984 = 00:00:07.984 = 15%
User Time = 11.265 = 00:00:11.265 = 21%
Process Time = 19.250 = 00:00:19.250 = 36%
Global Time = 52.390 = 00:00:52.390 = 100%

md5sum\md5sum.exe -c Nero-9.2.6.0_trial_srep_512.md5
Nero_srep_512_d: OK

IF ERRORLEVEL 1 (echo Nero_srep_512_d bad ) & (GOTO nodel1 )

del /F /Q Nero_srep_512_d


timer.exe Arc.exe a Nero_rep_512.arc -mrep:1024m Nero-9.2.6.0_trial.tar -di -di+$#

Timer 3.01 Copyright (c) 2002-2003 Igor Pavlov 2003-07-10
FreeArc 0.52 alpha (August 23a 2009) Creating archive: Nero_rep_512.arc using rep:1gb
Memory for compression 1280mb, decompression 1gb, cache 1mb
Started: 0.00 secs
Compressing 1 file of 1.974.371.328 bytes: 0.02 secs
Using rep:1gb
Memory for compression 1280mb, decompressi100.0%
Solid block compression results (32.078 seconds)
rep:1gb: 510.572.988 bytes in 32.078 seconds

Writing directory: 60.20 secs
Found 1 directory names: 60.23 secs
Directory written: 60.2
Compressed 1 file, 1.974.371.328 => 510.572.988 bytes. Ratio 25.8%
Compression time: cpu 45.48 secs, real 60.27 secs. Speed 32.761 kB/s
All OK

Kernel Time = 5.312 = 00:00:05.312 = 8%
User Time = 40.546 = 00:00:40.546 = 66%
Process Time = 45.859 = 00:00:45.859 = 75%
Global Time = 61.016 = 00:01:01.016 = 100%

timer.exe Arc.exe a Nero_srep_512_lzma.arc -msrep+lzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#

Timer 3.01 Copyright (c) 2002-2003 Igor Pavlov 2003-07-10
FreeArc 0.52 alpha (August 23a 2009) Creating archive: Nero_srep_512_lzma.arc using srep+lzma:1gb:normal:32
Memory for compression 1792mb, decompression 1024mb, cache 1mb
Started: 0.00 secs
Compressing 1 file of 1.974.371.328 bytes: 0.02 secs
Using srep+lzma:1gb:normal:32
Memory for compression 1792mb, decompression 10.0%
Compressing 1.974.371.328 bytes with srep.exe $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
10.0%138 mb used for hash
Compression ratio: 1974371328 -> 549576380: 27.84%. Cpu 19.621 mb/sec, real 16.958 mb/sec
Errorlevel=0
99.9%
Solid block compression results (564.717 seconds)
srep: 549.576.381 bytes in 120.670 seconds
lzma:1gb:normal:32: 206.265.214 bytes in 444.047 seconds

Writing directory: 629.4100.0%
Found 1 directory names: 629.50 secs
Directory written: 629.5
Compressed 1 file, 1.974.371.328 => 206.265.214 bytes. Ratio 10.4%
Compression time: cpu 467.23 secs, real 629.53 secs. Speed 3.136 kB/s
All OK

Kernel Time = 9.937 = 00:00:09.937 = 1%
User Time = 457.671 = 00:07:37.671 = 72%
Process Time = 467.609 = 00:07:47.609 = 74%
Global Time = 630.391 = 00:10:30.391 = 100%

timer.exe Arc.exe a Nero_rep_512_lzma.arc -mrep:1024m+lzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#

Timer 3.01 Copyright (c) 2002-2003 Igor Pavlov 2003-07-10
FreeArc 0.52 alpha (August 23a 2009) Creating archive: Nero_rep_512_lzma.arc using rep:1gb+tempfile+lzma:1gb:normal:32
Memory for compression 1792mb, decompression 1024mb, cache 1mb
Started: 0.00 secs
Compressing 1 file of 1.974.371.328 bytes: 0.02 secs
Using rep:1gb+tempfile+lzma:1gb:normal:32
Memory for compression 1792mb, decompression 99.9%
Solid block compression results (467.438 seconds)
rep:1gb: 510.572.988 bytes in 31.516 seconds
tempfile: 510.572.988 bytes in 1.063 seconds
lzma:1gb:normal:32: 205.510.000 bytes in 434.859 seconds

Writing directory: 499.63 secs
Found 1 directory names: 499.69 secs
Directory written: 499.7
Compressed 1 file, 1.974.371.328 => 205.510.000 bytes. Ratio 10.4%
Compression time: cpu 482.28 secs, real 499.72 secs. Speed 3.951 kB/s
All OK

Kernel Time = 6.718 = 00:00:06.718 = 1%
User Time = 475.953 = 00:07:55.953 = 95%
Process Time = 482.671 = 00:08:02.671 = 96%
Global Time = 500.453 = 00:08:20.453 = 100%

timer.exe Arc.exe a Nero_lzma.arc -mlzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#

Timer 3.01 Copyright (c) 2002-2003 Igor Pavlov 2003-07-10
FreeArc 0.52 alpha (August 23a 2009) Creating archive: Nero_lzma.arc using lzma:1gb:normal:32
Memory for compression 1792mb, decompression 1024mb, cache 1mb
Started: 0.00 secs
Compressing 1 file of 1.974.371.328 bytes: 0.02 secs
Using lzma:1gb:normal:32
Memory for compression 1792mb, decompression 99.9%
Solid block compression results (644.094 seconds)
lzma:1gb:normal:32: 206.676.757 bytes in 644.094 seconds

Writing directory: 658.61 secs
Found 1 directory names: 658.61 secs
Directory written: 658.6
Compressed 1 file, 1.974.371.328 => 206.676.757 bytes. Ratio 10.4%
Compression time: cpu 225.28 secs, real 658.63 secs. Speed 2.998 kB/s
All OK

Kernel Time = 3.234 = 00:00:03.234 = 0%
User Time = 651.906 = 00:10:51.906 = 98%
Process Time = 655.140 = 00:10:55.140 = 99%
Global Time = 659.375 = 00:10:59.375 = 100%

timer.exe Arc.exe a Nero_srep_512_rep_512_lzma.arc -msrep+rep:1024m+lzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#

Timer 3.01 Copyright (c) 2002-2003 Igor Pavlov 2003-07-10
FreeArc 0.52 alpha (August 23a 2009) Creating archive: Nero_srep_512_rep_512_lzma.arc using srep+rep:1gb+tempfile+lzma:1gb:normal:32
Memory for compression 1792mb, decompression 1024mb, cache 1mb
Started: 0.00 secs
Compressing 1 file of 1.974.371.328 bytes: 0.02 secs
Using srep+rep:1gb+tempfile+lzma:1gb:normal:32
Memory for compression 1792mb, decompression 10.0%
Compressing 1.974.371.328 bytes with srep.exe $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
10.0%138 mb used for hash
Compression ratio: 1974371328 -> 549576380: 27.84%. Cpu 19.645 mb/sec, real 17.048 mb/sec
Errorlevel=0
100.0%
Solid block compression results (573.296 seconds)
srep: 549.576.381 bytes in 120.062 seconds
rep:1gb: 540.834.752 bytes in 11.125 seconds
tempfile: 540.834.752 bytes in 1.031 seconds
lzma:1gb:normal:32: 206.603.674 bytes in 441.078 seconds

Writing directory: 641.34 secs
Found 1 directory names: 641.39 secs
Directory written: 641.4
Compressed 1 file, 1.974.371.328 => 206.603.674 bytes. Ratio 10.4%
Compression time: cpu 477.13 secs, real 641.42 secs. Speed 3.078 kB/s
All OK

Kernel Time = 11.562 = 00:00:11.562 = 1%
User Time = 465.921 = 00:07:45.921 = 72%
Process Time = 477.484 = 00:07:57.484 = 74%
Global Time = 641.859 = 00:10:41.859 = 100%

timer.exe srep.exe -l64 Nero-9.2.6.0_trial.tar Nero_srep_64

Timer 3.01 Copyright (c) 2002-2003 Igor Pavlov 2003-07-10
1101 mb used for hash
Compression ratio: 1974371328 -> 448006060: 22.69%. Cpu 12.125 mb/sec, real 11.138 mb/sec
Kernel Time = 4.812 = 00:00:04.812 = 2%
User Time = 162.859 = 00:02:42.859 = 91%
Process Time = 167.671 = 00:02:47.671 = 94%
Global Time = 177.625 = 00:02:57.625 = 100%

timer.exe srep.exe -d Nero_srep_64 Nero_srep_64_d

Timer 3.01 Copyright (c) 2002-2003 Igor Pavlov 2003-07-10
Compression ratio: 1974371328 -> 448006060: 22.69%. Cpu 178.980 mb/sec, real 39.686 mb/sec
Kernel Time = 9.796 = 00:00:09.796 = 19%
User Time = 11.046 = 00:00:11.046 = 22%
Process Time = 20.843 = 00:00:20.843 = 41%
Global Time = 49.969 = 00:00:49.969 = 100%


md5sum\md5sum.exe -c Nero-9.2.6.0_trial_srep_64.md5
Nero_srep_64_d: OK

IF ERRORLEVEL 1 (echo Nero_srep_64_d bad ) & (GOTO nodel2 )

del /F /Q Nero_srep_64_d


timer.exe Arc.exe a Nero_rep_64.arc -mrep:1024m:64 Nero-9.2.6.0_trial.tar -di -di+$#

Timer 3.01 Copyright (c) 2002-2003 Igor Pavlov 2003-07-10
FreeArc 0.52 alpha (August 23a 2009) Creating archive: Nero_rep_64.arc using rep:1gb:64
Memory for compression 1280mb, decompression 1gb, cache 1mb
Started: 0.00 secs
Compressing 1 file of 1.974.371.328 bytes: 0.02 secs
Using rep:1gb:64
Memory for compression 1280mb, decompressi 99.8%
Solid block compression results (49.297 seconds)
rep:1gb:64: 417.223.492 bytes in 49.297 seconds

Writing directory: 76.42 secs
Found 1 directory names: 76.44 secs
Directory written: 76.4
Compressed 1 file, 1.974.371.328 => 417.223.492 bytes. Ratio 21.1%
Compression time: cpu 62.63 secs, real 76.48 secs. Speed 25.814 kB/s
All OK

Kernel Time = 5.296 = 00:00:05.296 = 6%
User Time = 57.718 = 00:00:57.718 = 74%
Process Time = 63.015 = 00:01:03.015 = 81%
Global Time = 77.110 = 00:01:17.110 = 100%

timer.exe Arc.exe a Nero_srep_64_lzma.arc -msrep:l64+lzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#

Timer 3.01 Copyright (c) 2002-2003 Igor Pavlov 2003-07-10
FreeArc 0.52 alpha (August 23a 2009) Creating archive: Nero_srep_64_lzma.arc using srep:l64+lzma:1gb:normal:32
Memory for compression 1792mb, decompression 1024mb, cache 1mb
Started: 0.00 secs
Compressing 1 file of 1.974.371.328 bytes: 0.02 secs
Using srep:l64+lzma:1gb:normal:32
Memory for compression 1792mb, decompression 10.0%
Compressing 1.974.371.328 bytes with srep.exe -l64 $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
10.0%1101 mb used for hash
Compression ratio: 1974371328 -> 448006060: 22.69%. Cpu 11.932 mb/sec, real 10.841 10.0%
Errorlevel=0
99.9%
Solid block compression results (631.130 seconds)
srep:l64: 448.006.061 bytes in 186.380 seconds
lzma:1gb:normal:32: 208.076.180 bytes in 444.750 seconds

Writing directory: 694.84 secs
Found 1 directory names: 694.88 secs
Directory written: 694.8
Compressed 1 file, 1.974.371.328 => 208.076.180 bytes. Ratio 10.5%
Compression time: cpu 466.61 secs, real 694.89 secs. Speed 2.841 kB/s
All OK

Kernel Time = 9.015 = 00:00:09.015 = 1%
User Time = 457.890 = 00:07:37.890 = 65%
Process Time = 466.906 = 00:07:46.906 = 67%
Global Time = 695.407 = 00:11:35.407 = 100%

timer.exe Arc.exe a Nero_rep_64_lzma.arc -mrep:1024m:64+lzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#

Timer 3.01 Copyright (c) 2002-2003 Igor Pavlov 2003-07-10
FreeArc 0.52 alpha (August 23a 2009) Creating archive: Nero_rep_64_lzma.arc using rep:1gb:64+tempfile+lzma:1gb:normal:32
Memory for compression 1792mb, decompression 1024mb, cache 1mb
Started: 0.00 secs
Compressing 1 file of 1.974.371.328 bytes: 0.02 secs
Using rep:1gb:64+tempfile+lzma:1gb:normal:32
Memory for compression 1792mb, decompression 100.0%
Solid block compression results (479.203 seconds)
rep:1gb:64: 417.223.492 bytes in 49.359 seconds
tempfile: 417.223.492 bytes in 0.500 seconds
lzma:1gb:normal:32: 207.625.910 bytes in 429.344 seconds

Writing directory: 508.03 secs
Found 1 directory names: 508.05 secs
Directory written: 508.0
Compressed 1 file, 1.974.371.328 => 207.625.910 bytes. Ratio 10.5%
Compression time: cpu 493.56 secs, real 508.08 secs. Speed 3.886 kB/s
All OK

Kernel Time = 6.531 = 00:00:06.531 = 1%
User Time = 487.406 = 00:08:07.406 = 95%
Process Time = 493.937 = 00:08:13.937 = 97%
Global Time = 508.687 = 00:08:28.687 = 100%

timer.exe Arc.exe a Nero_srep_64_rep_64_lzma.arc -msrep:l64+rep:1024m:64+lzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#

Timer 3.01 Copyright (c) 2002-2003 Igor Pavlov 2003-07-10
FreeArc 0.52 alpha (August 23a 2009) Creating archive: Nero_srep_64_rep_64_lzma.arc using srep:l64+rep:1gb:64+tempfile+lzma:1gb:normal:32
Memory for compression 1792mb, decompression 1024mb, cache 1mb
Started: 0.00 secs
Compressing 1 file of 1.974.371.328 bytes: 0.02 secs
Using srep:l64+rep:1gb:64+tempfile+lzma:1gb:normal:32
Memory for compression 1792mb, decompression 10.0%
Compressing 1.974.371.328 bytes with srep.exe -l64 $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
10.0%1101 mb used for hash
Compression ratio: 1974371328 -> 448006060: 22.69%. Cpu 11.892 mb/sec, real 10.891 mb/sec
Errorlevel=0
100.0%
Solid block compression results (649.427 seconds)
srep:l64: 448.006.061 bytes in 185.270 seconds
rep:1gb:64: 435.067.940 bytes in 20.047 seconds
tempfile: 435.067.940 bytes in 0.688 seconds
lzma:1gb:normal:32: 209.605.255 bytes in 443.422 seconds

Writing directory: 717.94 secs
Found 1 directory names: 717.95 secs
Directory written: 717.9
Compressed 1 file, 1.974.371.328 => 209.605.255 bytes. Ratio 10.6%
Compression time: cpu 487.19 secs, real 717.99 secs. Speed 2.750 kB/s
All OK

Kernel Time = 10.593 = 00:00:10.593 = 1%
User Time = 476.984 = 00:07:56.984 = 66%
Process Time = 487.578 = 00:08:07.578 = 67%
Global Time = 718.671 = 00:11:58.671 = 100%
[/more]

srep.exe Nero-9.2.6.0_trial.tar Nero_srep_512
524.1МБ
Arc.exe a Nero_rep_512.arc -mrep:1024m Nero-9.2.6.0_trial.tar -di -di+$#
486.9МБ
Arc.exe a Nero_srep_512_lzma.arc -msrep+lzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#
196.7МБ
Arc.exe a Nero_rep_512_lzma.arc -mrep:1024m+lzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#
195.9МБ
Arc.exe a Nero_srep_512_rep_512_lzma.arc -msrep+rep:1024m+lzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#
197МБ
Arc.exe a Nero_lzma.arc -mlzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#
197.1МБ

srep.exe -l64 Nero-9.2.6.0_trial.tar Nero_srep_64
427.2МБ
Arc.exe a Nero_rep_64.arc -mrep:1024m:64 Nero-9.2.6.0_trial.tar -di -di+$#
397.8МБ
Arc.exe a Nero_srep_64_lzma.arc -msrep:l64+lzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#
198.4МБ
Arc.exe a Nero_rep_64_lzma.arc -mrep:1024m:64+lzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#
198МБ
Arc.exe a Nero_srep_64_rep_64_lzma.arc -msrep:l64+rep:1024m:64+lzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#
199.8МБ
Arc.exe a Nero_lzma.arc -mlzma:1024m Nero-9.2.6.0_trial.tar -di -di+$#
197.1МБ

srep vs rep: Дожатие srep принципиально хуже не становится.

Цитата:
можно сказать, что разработка SREP закончена

на базе SREP можете сделать программку делающие diff двух файлов, наподобии xdelta?

Цитата:
да, для ускорения работы добавлен ещё один массив в 1мб

filesize*20/L + 2*округлённое_вверх(filesize*8/L * 4/3)*1\2 +1 ?

ICESCREAM

Цитата:
А чем "@for %%i in (*.*) do @ srep бла-бла-бла" не устраивает?

и чего на выходе будет?

Добавлено:

Цитата:
статистика по Nero-9.2.6.0_trial.tar ниже

там затарина с сортировкой тип Размер
сегодняшний Nero-9.2.6.0_trial.tar без сортировки, как есть.

Добавлено:
md5sum был этот
http://downloads.activestate.com/contrib/md5sum/Windows/md5sum.exe
Автор: Ghost2004
Дата сообщения: 26.11.2009 16:24
Дальнейшая статистика: добавляю (к уже имеющимся srep v0.8) srep+rep, rep+srep и даже где-то rep+srep+rep . По сути дожал rep'ом предыдущие файлы после srep 0.8.

rep везде использовался с настройками 1700mb:h27:a99, длина слова будет указана.

srep08-l16kb - 4360.438 Мб
srep08-l16kb+rep:512 3828.626 Мб, разница - целых 531.812 Мб (но оно неудивительно: l16kb против l512)

srep08-l256 - 3825.422 Мб
srep08-l256+rep:256 - 3794.507 Мб, разница - 30.915 Мб

srep08-l256+srep08-l256 - 3812.676 Мб
srep08-l256+srep08-l256+rep:256 - 3798.033 Мб разница - лишь 14.643 Мб, сжалось даже хуже чем с одним srep

srep08-l128 - 3735.102 Мб
srep08-l128+rep:128 - 3700.202 Мб, разница 34.9 Мб

rep:128+srep08-l128 - 3650.639 Мб
rep:128+srep08-l128+rep:128 - 3649.819 Мб, разница лишь 840 кб

Итак, на этих данных rep перед srep оказывается полезней обратного варианта в смысле степени сжатия. Повторный srep даже вредит, если дожимать rep'ом с тем же словом. А так - для l16k дожатие с rep:512 даёт, как и следовало ожидать, огромный выигрыш 531 Мб, а вот для l256 и l128 выигрыш лишь 30-35 Мб, чуть ниже 1%. Зато rep:128 перед srep:128 заметно эффективнее - 84.5 Мб, 2.3%.

Так что на этих данных rep+srep куда полезнее srep+rep, а в rep+srep+rep последний rep вообще практически ничего не сжимает. Хотя 100% точны эти выводы лишь для l128. Для l256 предварительной обработки rep перед srep пока не было. Возможно следует потестить длины 512 и 2048 .

Но пока дальше пойду с lzma - посмотрим, как эти все файлы ужмутся lzma:192mb:max:lc8.
Автор: Bulat_Ziganshin
Дата сообщения: 26.11.2009 18:38

Цитата:
3Gb на win32

меня интересует не адресное пространство, а размер ОЗУ (т.е. сколько есть места для кеширования файлов) в сочетании со скоростью распаковки. насколько я пока понимаю, ты при наличии ~3гб под кеш распаковываешь где-то со скоростью копирования 7 гб файл? неплохо, но ещё интересней будут результаты с действительно большими файлами, гиг под 20


Цитата:
Кстати, lzma как лучше настраивать? Сейчас использую lzma:192mb:max:128:bt4:lc8 (или 128-160 Мб - насколько места хватит), но варианты вроде lzma:959mb:mc3:32:h768mb


lzma:192mb:max:128:bt4. не уверен, что lc8 увеличит сжатие

lzma:959mb:mc3:32:h768mb вряд ли хорошо сожмёт, mc3 больно мало. поставь хотя бы 48, но это уже будет на порядок медленней. вообще bt4:128m - это макс. сжатие с небольшим словарём, а ht4:959m - это сжатие похуже, но с макс. словарём. которое лучше сработает зависит от конкретного файла


Добавлено:

Цитата:
Да, а в srep+rep использовать одинаковую длину слова - если памяти на l128 хватает

да, в прицнипе. хотя я думаю, что -l512 будет оптимально, как это было и с rep. оптимизировать-то нужно размер после lzma


Цитата:
планируется в srep добавить возможность обработки папки?

не планировалось, но я подумаю. в принципе лучше было бы добавить srep в сам freearc


Цитата:
исходные данные Nero-9.2.6.0_trial.tar 1883МБ

всего 2 гига, причём ты их там lzma:1gb сжимаешь. в общем, маловат размерчик


Цитата:
md5sum был этот
http://downloads.activestate.com/contrib/md5sum/Windows/md5sum.exe

в srep08 встроенная проверка по md5. можешь проверить, изменив последний бат сжатого файла

Добавлено:

Цитата:
filesize*20/L + 2*округлённое_вверх(filesize*8/L * 4/3)*1\2 +1 ?

нет, filesize*20/L + 4*округлённое_вверх(filesize*8/L * 4/3)*1/4 +1мб


Цитата:
на базе SREP можете сделать программку делающие diff двух файлов, наподобии xdelta?

мог бы, но времени на это нет


Цитата:
А чем "@for %%i in (*.*) do @ srep бла-бла-бла" не устраивает?

тем, что это не то - нужно сжатие всех файлов в общем потоке


Добавлено:

Цитата:
дык нет вопросов - давай по старой схеме: я выкладываю архив у себя на фтп, ты качай да изучай, вес - 3Гб.
вот ltПодробнее...

опиши проблему. без лирики.

а сколько у тебя там wav-файлов? есть подозрение, что память фрагментируется из-за того, что их слишком много. может, для пробы перепакуешь архив с -mc-tta ?
Автор: Ghost2004
Дата сообщения: 26.11.2009 23:16
Да, памяти у меня тоже 3 Gb - и работает она как DDR315, т.к. двуядерник мой - один из самых старых, и с 4-мя планками быстрее DDR333 не работает - но при этом скорость процессора должна быть кратной скорости памяти - так что на 2.2 ГГц выходит как 315*7 - вот если чуть снизить частоту до 2 ГГц, то получится 333*6. Так что иногда даже 2 Гб физической памяти могут быть лучше - ведь с ними-то память всегда работает как DDR400 с 1T command rate (вместо 2T для 4-ёх модулей). Но наверное не в случае srep . Да и вообще Freearc как раз выигрывает от лишней памяти так или иначе.

Несколько результатов дожатия с lzma - везде lzma означает lzma:192mb:max:128:bt4:lc8 . А rep:len - rep:1700mb:h27:a99:len (или 1400mb - но разница в том случае, когда про перебазировку dll'ок я не знал, и свободный блок был меньше, оказалась минимальной, ~50 кб на 6 Гб данных)

Повторю исходные результаты:
Исходный tar - 7540.096 Мб
rep:128 - 5788.845 Мб

rep:128+lzma - 4885.368 Мб (выигрыш 6% по сравнению с исходным архивом, который был сжат rar'ом). Время сжатия - real - 9778 sec (из них 1177 - за счёт rep:128:a99 с tempfile), т.е. 8601 sec на lzma (rep и lzma были разделены tempfile). Скорость сжатия lzma в итоге выходит 898 Кб/с - если считать на все 7540 Мб, но вернее тут две другие цифры - 690 Кб/с если пересчитывать на 5789 Мб сжатых rep'ом и 582 Кб/с от сжатого объёма (4885 Мб). Время тестирования без распаковки в tempfile - 775 сек. Для тестирования rep:128 cpu time - 50.41 сек, так что чистое время lzma должно быть в районе 725 сек. Т.е. скорости распаковки именно lzma выходят 10.4 Мб/с (7540), 7.98 Мб/с (5789) и 6.74 Мб/с (4885) - смотря на какой объём пересчитывать. (Тут хочу заметить, что я считаю в расчёте 1 Мб=2^20, 1 Кб=2^10 - несколько иначе, чем сам arc, где 10^6 и 1000 соответственно)

теперь - новые результаты, дожатие lzma srep/rep архивов:

rep:128+srep08-l128+rep:128+lzma - 3649.819 -> 3142.025 Мб.
Время сжатия lzma: cpu 9351.99 secs, real 8523.16 secs. Speed 449 kB/s

srep08-l256+rep:256+lzma 3794.507 Мб -> 3141.463 Мб
Время сжатия lzma: cpu 7286.25 secs, real 5701.19 secs. Speed 698 kB/s


srep08-l256+srep08-l256+rep:256+lzma - 3798.033 Мб -> 3142.265 Мб
Время сжатия lzma: cpu 8289.27 secs, real 6429.42 secs. Speed 619 kB/s

srep08-l16kb+rep:512+lzma 3828.626 Мб -> 3144.797 Мб
Время сжатия lzma: cpu 7664.74 secs, real 6389.70 secs. Speed 628 kB/s

Пока всё, дальше будет ещё результаты.
На данный момент srep-l256+rep:256 оказывается лучше всех и по сжатию и по скорости lzma. rep:128+srep-l128+rep:128 - значительно хуже всех в плане скорости.

Но в принципе, lzma дожимает так, что разница - мизерная.
По сравнению с лучшим на данный момент srep-l256+rep:256+lzma размер больше лишь на
589 557 байт для rep:128+srep-l128+rep:128,
841 486 для srep-l256x2+rep:256 и
3 496 020 для srep-l16kb+rep:512 .

А при сжатом размере в 3141.463 Мб даже 3 Мб - 0.1%. Так что именно на размер (пока) не стоит смотреть. Скорость и время lzma - другое дело. И тут srep-l256+rep:256 рулит, обходя l128 на 33%. Как и исходный вариант без srep - rep:128+lzma (но тут ещё размер более чем в 1.5 раза меньше) - хотя вероятно тут лучше было бы использовать rep:256 или rep:512 . Впрочем, возможно тут дело не в том, что l128 особо неудачный вариант, а в том, что rep:128+srep-l128+rep:128 - перебор. Или при сжатии этого файла другие программы мешали. Посмотрим, что выйдет с двумя другими l128 ...
Автор: Bulat_Ziganshin
Дата сообщения: 26.11.2009 23:30
Ghost2004
сделай для начала с дефолтными настройками: rep:512+lzma, srep:512+lzma, srep:512+rep:512+lzma
Автор: egor23
Дата сообщения: 27.11.2009 08:14
Bulat_Ziganshin

Цитата:
всего 2 гига, причём ты их там lzma:1gb сжимаешь. в общем, маловат размерчик

это оценка дожатия, и размер исходных данных не особо важен, т.к. если брать данные большого размера, то вероятность того что rep не найдёт повторы выше, а если эти повторы несжимаемые, то результат дожатия будет очевиден: srep+lzma < rep+lzma (меньше лучше)

Цитата:
нет, filesize*20/L + 4*округлённое_вверх(filesize*8/L * 4/3)*1/4 +1мб

1\4 не заметел, при каких условиях будет 1\4?

Цитата:
мог бы, но времени на это нет

тогда пометьте, что такое востребовано, т.к. у xdelta есть свои недостатки, а других программ наподобии xdelta незнаю.

Цитата:
в srep08 встроенная проверка по md5. можешь проверить, изменив последний бат сжатого файла

возможно имеет смысл сделать эту проверку отключаемой?
не могли бы сделать бенчмаркер для расчета md5 (возможно и других хэшей)?
как это сделато в 7-zip
7z b -md30 -mm=crc
единственное чтобы можно было "произвольный" размер данных задавать

Цитата:
2. скорость распаковки (с диска на диск) для действительно больших файлов (скажем, 18 гб при 1-2 гб ОЗУ)

больших данных под рукой нет
будет симуляция (будет ограничена доступная память примерно до ~40МБ)
[more=лог..]
Распаковка, два диска

timer.exe srep.exe -d Nero_srep_512 X:\Nero_srep_512_d

Timer 3.01 Copyright (c) 2002-2003 Igor Pavlov 2003-07-10
Compression ratio: 1974371328 -> 549576380: 27.84%. Cpu 176.974 mb/sec, real 37.710 mb/sec
Kernel Time = 7.765 = 00:00:07.765 = 14%
User Time = 11.187 = 00:00:11.187 = 21%
Process Time = 18.953 = 00:00:18.953 = 36%
Global Time = 52.406 = 00:00:52.406 = 100%

timer.exe srep.exe -d Nero_srep_64 X:\Nero_srep_64_d

Timer 3.01 Copyright (c) 2002-2003 Igor Pavlov 2003-07-10
Compression ratio: 1974371328 -> 448006060: 22.69%. Cpu 171.219 mb/sec, real 37.109 mb/sec
Kernel Time = 9.968 = 00:00:09.968 = 18%
User Time = 11.546 = 00:00:11.546 = 21%
Process Time = 21.515 = 00:00:21.515 = 39%
Global Time = 54.000 = 00:00:54.000 = 100%

Распаковка, два диска, доступная память ограничена до ~40МБ

timer.exe srep.exe -d Nero_srep_512 X:\Nero_srep_512_d

Timer 3.01 Copyright (c) 2002-2003 Igor Pavlov 2003-07-10
Compression ratio: 1974371328 -> 549576380: 27.84%. Cpu 176.234 mb/sec, real 6.038 mb/sec
Kernel Time = 10.156 = 00:00:10.156 = 3%
User Time = 11.218 = 00:00:11.218 = 3%
Process Time = 21.375 = 00:00:21.375 = 6%
Global Time = 327.547 = 00:05:27.547 = 100%

timer.exe srep.exe -d Nero_srep_64 X:\Nero_srep_64_d

Timer 3.01 Copyright (c) 2002-2003 Igor Pavlov 2003-07-10
Compression ratio: 1974371328 -> 448006060: 22.69%. Cpu 173.571 mb/sec, real 3.127 mb/sec
Kernel Time = 11.921 = 00:00:11.921 = 1%
User Time = 11.390 = 00:00:11.390 = 1%
Process Time = 23.312 = 00:00:23.312 = 3%
Global Time = 632.360 = 00:10:32.360 = 100%
[/more]
Распаковка, один диск

srep.exe -d Nero_srep_512 X:\Nero_srep_512_d
Compression ratio: 1974371328 -> 549576380: 27.84%. Cpu 175.744 mb/sec, real 37.858 mb/sec
srep.exe -d Nero_srep_64 X:\Nero_srep_64_d
Compression ratio: 1974371328 -> 448006060: 22.69%. Cpu 178.980 mb/sec, real 39.686 mb/sec

Распаковка, два диска (~30МБ\с и ~60МБ\с, распаковка идёт на более быстрый диск)

srep.exe -d Nero_srep_512 X:\Nero_srep_512_d
Compression ratio: 1974371328 -> 549576380: 27.84%. Cpu 176.974 mb/sec, real 37.710 mb/sec
srep.exe -d Nero_srep_64 X:\Nero_srep_64_d
Compression ratio: 1974371328 -> 448006060: 22.69%. Cpu 171.219 mb/sec, real 37.109 mb/sec

Распаковка, два диска, доступная память ограничена до ~40МБ

srep.exe -d Nero_srep_512 X:\Nero_srep_512_d
Compression ratio: 1974371328 -> 549576380: 27.84%. Cpu 176.234 mb/sec, real 6.038 mb/sec
srep.exe -d Nero_srep_64 X:\Nero_srep_64_d
Compression ratio: 1974371328 -> 448006060: 22.69%. Cpu 173.571 mb/sec, real 3.127 mb/sec

картинки Process Explorer
(сделаны были после для случая Распаковка, два диска)
Nero_srep_512_d Nero_srep_64_d
Автор: Bulat_Ziganshin
Дата сообщения: 27.11.2009 09:26

Цитата:
это оценка дожатия, и размер исходных данных не особо важен

если сжимать 2 гига с lzma:1gb, то rep/srep особо уже и не нужен. поэтому я и интересуюсь файлами размером гиг в 5-10


Цитата:
нет, filesize*20/L + 4*округлённое_вверх(filesize*8/L * 4/3)*1/4 +1мб

1\4 не заметел, при каких условиях будет 1\4?

у тебя было написано 2*...*1/2, я поменял на 4*...*1/4


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

нафига?


Цитата:
не могли бы сделать бенчмаркер для расчета md5 (возможно и других хэшей)?

вот бенчмарк используемой мной библиотеки: [more]C:\temp\encryption\libtomcrypt-1.17>timing
Clock Skew: 0


Key Schedule Time Trials for the Symmetric Ciphers:
(Times are cycles per key)
.....................
skipjack : Schedule at 45
noekeon : Schedule at 60
xtea : Schedule at 224
kasumi : Schedule at 267
aes : Schedule at 657
seed : Schedule at 667
safer-k64 : Schedule at 794
khazad : Schedule at 895
cast5 : Schedule at 1170
safer-sk64 : Schedule at 1237
safer-k128 : Schedule at 1273
safer-sk128 : Schedule at 1529
rc5 : Schedule at 1635
rc6 : Schedule at 2598
safer+ : Schedule at 2780
rc2 : Schedule at 2969
anubis : Schedule at 4647
twofish : Schedule at 23924
des : Schedule at 26245
3des : Schedule at 81021
blowfish : Schedule at 120480


ECB Time Trials for the Symmetric Ciphers:
.....................
rc5 [ 2]: Encrypt at 129, Decrypt at 122
blowfish [ 0]: Encrypt at 230, Decrypt at 199
cast5 [ 15]: Encrypt at 266, Decrypt at 192
rc6 [ 3]: Encrypt at 301, Decrypt at 310
khazad [ 18]: Encrypt at 388, Decrypt at 388
xtea [ 1]: Encrypt at 453, Decrypt at 420
des [ 13]: Encrypt at 467, Decrypt at 464
aes [ 6]: Encrypt at 494, Decrypt at 478
twofish [ 7]: Encrypt at 470, Decrypt at 506
noekeon [ 16]: Encrypt at 635, Decrypt at 600
safer-k64 [ 8]: Encrypt at 678, Decrypt at 588
kasumi [ 21]: Encrypt at 675, Decrypt at 669
rc2 [ 12]: Encrypt at 780, Decrypt at 620
anubis [ 19]: Encrypt at 759, Decrypt at 758
safer-sk64 [ 9]: Encrypt at 864, Decrypt at 769
seed [ 20]: Encrypt at 823, Decrypt at 825
safer-k128 [ 10]: Encrypt at 1078, Decrypt at 946
safer-sk128 [ 11]: Encrypt at 1081, Decrypt at 946
skipjack [ 17]: Encrypt at 1106, Decrypt at 1539
3des [ 14]: Encrypt at 1349, Decrypt at 1349
safer+ [ 4]: Encrypt at 2666, Decrypt at 2706


CBC Time Trials for the Symmetric Ciphers:
.....................
rc5 [ 2]: Encrypt at 142, Decrypt at 129
blowfish [ 0]: Encrypt at 245, Decrypt at 207
cast5 [ 15]: Encrypt at 280, Decrypt at 199
rc6 [ 3]: Encrypt at 322, Decrypt at 319
khazad [ 18]: Encrypt at 404, Decrypt at 395
xtea [ 1]: Encrypt at 465, Decrypt at 427
des [ 13]: Encrypt at 477, Decrypt at 468
aes [ 6]: Encrypt at 519, Decrypt at 496
twofish [ 7]: Encrypt at 497, Decrypt at 521
noekeon [ 16]: Encrypt at 659, Decrypt at 615
safer-k64 [ 8]: Encrypt at 687, Decrypt at 602
kasumi [ 21]: Encrypt at 687, Decrypt at 676
rc2 [ 12]: Encrypt at 793, Decrypt at 627
anubis [ 19]: Encrypt at 785, Decrypt at 772
safer-sk64 [ 9]: Encrypt at 889, Decrypt at 776
seed [ 20]: Encrypt at 844, Decrypt at 835
safer-k128 [ 10]: Encrypt at 1084, Decrypt at 960
safer-sk128 [ 11]: Encrypt at 1086, Decrypt at 959
skipjack [ 17]: Encrypt at 1120, Decrypt at 1550
3des [ 14]: Encrypt at 1352, Decrypt at 1341
safer+ [ 4]: Encrypt at 2693, Decrypt at 2779


CTR Time Trials for the Symmetric Ciphers:
.....................
rc5 [ 2]: Encrypt at 153, Decrypt at 153
blowfish [ 0]: Encrypt at 257, Decrypt at 257
cast5 [ 15]: Encrypt at 291, Decrypt at 291
rc6 [ 3]: Encrypt at 332, Decrypt at 332
khazad [ 18]: Encrypt at 413, Decrypt at 413
xtea [ 1]: Encrypt at 477, Decrypt at 477
des [ 13]: Encrypt at 486, Decrypt at 486
twofish [ 7]: Encrypt at 505, Decrypt at 505
aes [ 6]: Encrypt at 530, Decrypt at 531
noekeon [ 16]: Encrypt at 668, Decrypt at 668
safer-k64 [ 8]: Encrypt at 683, Decrypt at 684
kasumi [ 21]: Encrypt at 699, Decrypt at 698
anubis [ 19]: Encrypt at 790, Decrypt at 790
rc2 [ 12]: Encrypt at 808, Decrypt at 808
seed [ 20]: Encrypt at 858, Decrypt at 856
safer-sk64 [ 9]: Encrypt at 881, Decrypt at 879
safer-sk128 [ 11]: Encrypt at 1088, Decrypt at 1092
safer-k128 [ 10]: Encrypt at 1090, Decrypt at 1090
skipjack [ 17]: Encrypt at 1127, Decrypt at 1127
3des [ 14]: Encrypt at 1372, Decrypt at 1372
safer+ [ 4]: Encrypt at 2682, Decrypt at 2682


HASH Time Trials for:
...............
md4 : Process at 6
md5 : Process at 8
rmd128 : Process at 14
sha1 : Process at 15
rmd256 : Process at 15
rmd320 : Process at 19
rmd160 : Process at 20
tiger : Process at 24
sha256 : Process at 29
sha224 : Process at 29
sha512 : Process at 74
sha384 : Process at 74
chc_hash : Process at 130
whirlpool : Process at 137
md2 : Process at 514

MAC Timings (cycles/byte on 1KB blocks):
LTC_OMAC-aes 34
XCBC-aes 39
F9-aes 36
PMAC-AES 42
LTC_PELICAN 13
LTC_HMAC-sha1 21

MAC Timings (cycles/byte on 4KB blocks):
LTC_OMAC-aes 32
XCBC-aes 33
F9-aes 33
PMAC-AES 37
LTC_PELICAN 12
LTC_HMAC-sha1 16

MAC Timings (cycles/byte on 32KB blocks):
LTC_OMAC-aes 31
XCBC-aes 32
F9-aes 32
PMAC-AES 35
LTC_PELICAN 11
LTC_HMAC-sha1 15

ENC+MAC Timings (zero byte AAD, 16 byte IV, cycles/byte on 1KB blocks):
EAX 81
OCB 58
CCM (no-precomp) 66
CCM (precomp) 64
GCM (no-precomp) 652
GCM (precomp) 55

ENC+MAC Timings (zero byte AAD, 16 byte IV, cycles/byte on 4KB blocks):
EAX 72
OCB 52
CCM (no-precomp) 64
CCM (precomp) 64
GCM (no-precomp) 202
GCM (precomp) 54

ENC+MAC Timings (zero byte AAD, 16 byte IV, cycles/byte on 32KB blocks):
EAX 68
OCB 50
CCM (no-precomp) 64
CCM (precomp) 64
GCM (no-precomp) 69
GCM (precomp) 53
Timing PRNGs (cycles/byte output, cycles add_entropy (32 bytes) :
yarrow: 44 6435
fortuna: 42 73081
rc4: 28 3615
sober128: 5 1089[/more]

время тут в тиках. вычислить скорость для своей машины можно посмотрев cpu-скорость распаковки srep (она на 80% состоит из вычисления md5) и посмотрев сколько тиков занимает вычисление других алгоритмов

Добавлено:

Цитата:
больших данных под рукой нет
будет симуляция (будет ограничена доступная память примерно до ~40МБ)

чем ограничивал? нам нужно не пространство процесса, а размер кеша ограничить
Автор: egor23
Дата сообщения: 27.11.2009 09:52
Bulat_Ziganshin

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

что было под рукой - RAM-drive, создавался диск (файл-подкачки отключен)
ограничавлась доступная память, было всего доступно ~40МБ (+\- возможно система выгружало что не нужное)
сделано чтобы не было памяти для кэша Windows

Цитата:
у тебя было написано 2*...*1/2, я поменял на 4*...*1/4

у меня написано так как есть, 1\4 это так понял шутите?

Цитата:
нафига?

возможно потеря времяни...

Цитата:
время тут в тиках. вычислить скорость для своей машины можно посмотрев cpu-скорость распаковки srep (она на 80% состоит из вычисления md5) и посмотрев сколько тиков занимает вычисление других алгоритмов

а отдельная утилитка была полезна

Цитата:
если сжимать 2 гига с lzma:1gb, то rep/srep особо уже и не нужен. поэтому я и интересуюсь файлами размером гиг в 5-10

интересовал вопрос rep/srep насколько ухудшает сжатие.
Автор: Bulat_Ziganshin
Дата сообщения: 27.11.2009 10:46
2*xxx*1/2 = xxx, или правила уже поменялись?


Добавлено:

Цитата:
интересовал вопрос rep/srep насколько ухудшает сжатие.

тогда надо было брать файл меньше словаря lzma. но меня вообще-то интересовало насколько улучшает
Автор: egor23
Дата сообщения: 27.11.2009 10:51
Bulat_Ziganshin

Цитата:
2*xxx*1/2 = xxx, или правила уже поменялись?

конечно поменялись
2*xxx*1/2 =2*(1\2*xxx)
так будет правильней
filesize*20/L + 2*(1\2*округлённое_вверх(filesize*8/L * 4/3)) +1

Добавлено:

Цитата:
тогда надо было брать файл меньше словаря lzma

так дожимаются и так данные меньше словаря lzma...
Автор: Bulat_Ziganshin
Дата сообщения: 27.11.2009 12:20

Цитата:
округлённое_вверх

округлённое вверх до степени 2, если что. и с 1/2 ты что-то тормозишь
Автор: egor23
Дата сообщения: 27.11.2009 12:27
Bulat_Ziganshin

Цитата:
округлённое вверх до степени 2, если что. и с 1/2 ты что-то тормозишь

но это округлённое, разделяется на блока памяти...
Автор: Bulat_Ziganshin
Дата сообщения: 27.11.2009 12:33

Цитата:
но это округлённое, разделяется на блока памяти...

ах, вот ты про что! ну конечно, ну тогда уж:

filesize*20/L + 2*округлённое_вверх(filesize*4/L * 5/4) + 1 мб

1. я поменял 4/3 на 5/4 в 0.8
2. 4/L, поскольку там 4-байтные величины на каждый кусок файла длиной L. в моей первоначальной формуле я написал 8/L, просуммировав оба блока
3. "1 мб", а не "1", поскольку filesize - размерная величина
Автор: egor23
Дата сообщения: 27.11.2009 12:47
Bulat_Ziganshin

Цитата:
1. я поменял 4/3 на 5/4 в 0.8

я сегодня думаю непонятка, по расчёту должно быть 515 и округлиться до 1024, а нет получаю 512...
а но вон как 5\4

Добавлено:

Цитата:
"1 мб", а не "1"

это просто, расчёты и так в МБ велись, вот и пустил момент.
Автор: NattyBampo
Дата сообщения: 27.11.2009 13:56
я чето не пойму как юзать srep. я закинул 3 файла вот сюда С:\Program Files (x86)\FreeArc\PowerPack\bin. потом в arc.ini добавил вот это

[External compressor:srep]
;options = l%d (minimal match length)
packcmd = srep $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = srep -d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp

в фриарке ввожу это -m=srep-l256+rep:256+lzma:256m и ниче не происходит - окошко запаковки пустое(
Автор: egor23
Дата сообщения: 27.11.2009 14:13
NattyBampo
srep:l256
http://forum.ru-board.com/topic.cgi?forum=5&topic=31386&start=600#17
Автор: crotoff
Дата сообщения: 27.11.2009 14:14
[b]

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970

Предыдущая тема: Opera (часть 14)


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