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

» FreeArc (часть 4)

Автор: Alexander865
Дата сообщения: 04.03.2011 17:10
Bulat_Ziganshin

Цитата:
можешь объяснить почему остальные файлы не трогать?


Ну вот такая вот дурацкая инсталляция нужна) Просто уже заточено под привычные нужды. документация должна остаться в текущей папке - куда всё было распаковано. А setup.exe уже инсталлирует что надо и куда надо.

и я немного неточно указал алгоритм. Нужно так:

1) Имеем файл MyArchive.exe
2) Кликаем по нему - он создаёт рядом с собой папку со своим именем. Т.е. в данном случае создаёт папку MyArchive
3) setup.exe распаковывается во временный каталог (TEMP) - чтобы пользователь не видел его. Всё остальное распаковывается в папку MyArchive
4) Из временного каталога запускается setup.exe и удаляется после того как завершится.

Буду благодарен, если сделаешь такой модуль или подскажешь как сварганить его самостоятельно.
Автор: egor23
Дата сообщения: 14.01.2012 14:39
Bulat_Ziganshin

Цитата:
завтра наверно переделаю с другим RAM-drive

результаты такие-же
Primo Ramdisk Professional Edition 5.2.0
данные на RAM-drive - запись на RAM-drive (RAM-drive 1024МБ)

старый rep
Compressed 1 file, 734,003,200 => 263,593,371 bytes. Ratio 35.9%
Compression time: cpu 13.08 secs, real 15.13 secs. Speed 48,529 kB/s

новый rep
Compressed 1 file, 734,003,200 => 265,662,180 bytes. Ratio 36.1%
Compression time: cpu 12.41 secs, real 14.34 secs. Speed 51,172 kB/s

новый2 rep
Compressed 1 file, 734,003,200 => 264,563,450 bytes. Ratio 36.0%
Compression time: cpu 8.69 secs, real 10.23 secs. Speed 71,719 kB/s


Цитата:
там указывается каталог

туплю
Автор: Paramon111
Дата сообщения: 14.01.2012 14:47
Насчет скорости еще хотел сказать.
Исходный файл .abk 400 314 012 байт
7zip ультра lzma2 256m 273 непрерывный 2 потока - 33 394 620 байт (1087с)
freearc -max -mc-rep -mc-exe -mc-dict - 25 454 436 байт (123с)
Разница во времени почти в 9 раз и сжатие на 2% сильней.
Автор: Bulat_Ziganshin
Дата сообщения: 04.03.2011 17:16

Цитата:
setup.exe распаковывается во временный каталог

вот это уже сложнее. и извини, я теперь не понимаю - как setup.exe узнает где остальные файлы находятся? или они ему и не нужны?
Автор: Bulat_Ziganshin
Дата сообщения: 14.01.2012 14:49
egor23
в общем, у тебя похоже упирается в банальную скорость rep+crc, оптимизировать i/o тут бесполезно. для интереса попробуй новый rep1 без dll - одна из оптимизаций в rep2 заключалась как раз в том, что я исключил из dll rep_compress(), поскольку он был медленней встроенного
Автор: egor23
Дата сообщения: 04.03.2011 17:18
Bulat_Ziganshin

Цитата:
3 повторов достаточно, я попробую

и статистику ошибок приделайте заодно, чтобы было видно были они или нет
Автор: Shuld
Дата сообщения: 14.01.2012 15:04

Цитата:
Подскажите где можно посмотреть детальную расшифровку методов сжатия?


http://freearc.org/ru/Documentation.aspx
Первая ссылка.

Цитата:
freearc -max -mc-rep -mc-exe -mc-dict

-m насколько я понимаю, должен быть только один, а не 4.

Добавлено:
Bulat_Ziganshin


Цитата:
обновил архив - ускорены I/O и сам REP


Сравнил (пока навскидку) версии 11.01.2012 и 14.01.2012.
Разница в размерах - несколько байт (на сотни мегабайт архива), по времени примерно так:
17,34с -> 17,24с
17,23 с -> 16,97с
В общем, на уровне возможной ошибки.
Автор: Bulat_Ziganshin
Дата сообщения: 04.03.2011 17:18

Цитата:
мне, помнится, помогало, когда пробовал распаковку srep без stdin/stdout. Может сейчас уже что-то по-другому работает.

мы говорим о распаковщике, описанном в arc.ini. давным-давно такие распаковщики выполнялись прямиком в текущем каталоге, но это было задолго до появления srep, afair
Автор: Sig666
Дата сообщения: 04.03.2011 17:19
Bulat_Ziganshin

Цитата:
это не поможет. при вызове внешнего распаковщика создаётся временный каталог и вызов производится в нём - на случай ели он создаёт какие-то временные файлы

Конкретно с срепом при распаке c временным файлом (-mem64m) прокатило. Временный каталог задал через -w как папку назначения.

ПЫСЫ: А без -f распаковка через stdio не работает?
Автор: egor23
Дата сообщения: 14.01.2012 15:28
Bulat_Ziganshin
переделовал - на RAM-drive - запись на RAM-drive
т.к. результат получился хуже чем - данные на HDD (закешированы) - запись на RAM-drive


Цитата:
для интереса попробуй новый rep1 без dll - одна из оптимизаций в rep2 заключалась как раз в том, что я исключил из dll rep_compress(), поскольку он был медленней встроенного

вот эта оптимизация полезная

Цитата:
1. данные на HDD (закешированы) - запись на RAM-drive (RAM-drive 288МБ)

старый rep
Compressed 1 file, 734,003,200 => 263,593,371 bytes. Ratio 35.9%
Compression time: cpu 12.56 secs, real 12.80 secs. Speed 57,358 kB/s

новый rep
Compressed 1 file, 734,003,200 => 265,662,180 bytes. Ratio 36.1%
Compression time: cpu 12.36 secs, real 12.58 secs. Speed 58,356 kB/s

новый2 rep
Compressed 1 file, 734,003,200 => 264,563,450 bytes. Ratio 36.0%
Compression time: cpu 8.42 secs, real 8.80 secs. Speed 83,439 kB/s


Arc.exe без dll

данные на HDD (закешированы) - запись на RAM-drive (RAM-drive 288МБ)

старый rep
Compressed 1 file, 734,003,200 => 263,593,371 bytes. Ratio 35.9%
Compression time: cpu 16.25 secs, real 16.47 secs. Speed 44,569 kB/s

новый rep
Compressed 1 file, 734,003,200 => 265,662,180 bytes. Ratio 36.1%
Compression time: cpu 9.88 secs, real 10.09 secs. Speed 72,719 kB/s

новый2 rep
Compressed 1 file, 734,003,200 => 264,563,450 bytes. Ratio 36.0%
Compression time: cpu 9.05 secs, real 9.27 secs. Speed 79,218 kB/s

ещё гляну на фрагментированном файлике
Автор: Alexander865
Дата сообщения: 04.03.2011 17:22
Bulat_Ziganshin

Цитата:
или они ему и не нужны?


Не нужны. Setup.exe сам по себе
Автор: Bulat_Ziganshin
Дата сообщения: 04.03.2011 17:45

Цитата:
А без -f распаковка через stdio не работает?

без -f - только с -temp, в который будут записаны все выходные данные


Цитата:
Конкретно с срепом при распаке c временным файлом (-mem64m) прокатило. Временный каталог задал через -w как папку назначения.

странно, не должно. он vm файл создал в этом каталоге или его подкаталоге?

Alexander865
ясно. ну в общем это можно сделать и на is, и в sfx, но двумя строчками не обойдёшься. имхо самое логичное - обратиться в http://forum.ru-board.com/topic.cgi?forum=5&topic=32025#1 где за 30-100 баксов думаю найдёшь исполнителя
Автор: Paramon111
Дата сообщения: 14.01.2012 15:36

Цитата:
-m насколько я понимаю, должен быть только один, а не 4.

Смотри, берем тот же файл .abk
-max - 26 206 164 (129c)
-max -mc-rep - 26 148 447 (117c)
-max -mc-rep -mc-exe - 25 454 436 (113c)
Как видишь разница есть. mc-dict можно не писать, он в этом варианте только тормозит процесс.
Лучше сжать этот файл я не смог.
Автор: Bulat_Ziganshin
Дата сообщения: 14.01.2012 15:57

Цитата:
Около двух лет наблюдаю за развитием FreeArc.
За это время он не снискал особой популярности среди обычных людей, скорее больше среди репакеров игр.


Цитата:
Мне кажется в этой ситуации лучший выход был бы сменить вектор развития.
Как возможный вариант - развитие томов восстановления в виде кодов рид-соломона.


спасибо, насмешил. ты констатируешь, что fa популярен только среди гиков (согласен), и тут же предлагаешь переделать его под других гиков. и это как раз тогда, когда он худо-бедно разворачивается лицом к народу!

вот что я собираюсь делать:
- поддержку 7z/zip/zipx форматов на лучшем уровне, чем в 7-zip и других бесплатных программах
- поддержку формата arc в 7-zip (и транзитом в winrar/winzip/pa/hao)
- дальнейшее улучшение формата arc, чтобы сделать его "предложением, от которого невозможно отказаться". в частности, многотомность и в перспективе - par2 или что-то типа него
Автор: Alexander865
Дата сообщения: 04.03.2011 18:07
Bulat_Ziganshin

Спасибо. Попробую.
Автор: Shuld
Дата сообщения: 14.01.2012 16:04
Bulat_Ziganshin


Цитата:
кстати, оптимальные настройки rep-препроцессинга для различных режимов многопоточного сжатия:

-m1: rep:257
-m2: rep:65
-m3: rep:33
-m4: rep:96:d4m:s32


По какому критерию(ям)?
Автор: Bulat_Ziganshin
Дата сообщения: 04.03.2011 18:16

Цитата:
небольшие расхождения в цифрах, т.е. неплохо бы выводить цифры и во время Second pass:

да, с -m3f архив получается чуть больше чем с -m3, а с -m1f/-m2f расхождение гораздо больше. надо просто сделать правильный подсчёт в первой строке (сейчас она считает какой был бы размер без -f)


Цитата:
и просто добавлять нужный каталог в PATH перед началом распаковки.
имхо не вариант. Так сказать, не user-friendly решение проблемы.

зато developer-friendly

я пока предлагаю попробовать этот workaround на вашей стороне, а потом подумать что можно сделать на моей. собственно говоря, если для этого достаточно добавить одну строчку в твой и шегоратовский скрипт, то какие проблемы пользователям - они ж пользуются готовыми вашими скриптами
Автор: Bulat_Ziganshin
Дата сообщения: 14.01.2012 16:24
Shuld
по соотношению скорости и степени сжатия. правда, на моей машине и на тестах всего 1-2 файлов

суть в том, что меньший :l улучшает конечное сжатие, но требует больше времени. поэтому для каждого уровня сжатия подбирается такой :l, чтобы получилось не слишком медленно. при этом l257/129/65/33/17 автоматически выставляют :c256/128/..., что позволяет сохранить совместимость архива со старыми версиями FA (не держащими параметр rep:cXX)
Автор: Sig666
Дата сообщения: 04.03.2011 18:27
Bulat_Ziganshin

Цитата:
странно, не должно. он vm файл создал в этом каталоге или его подкаталоге?

Создал в каталоге freearc<многоцифор>.tmp, который в свою очередь находился в папке, указанной через "-w"
Автор: WildGoblin
Дата сообщения: 14.01.2012 18:57
Miggo77

Цитата:
Как возможный вариант - развитие томов восстановления в виде кодов рид-соломона.
В "модемные времена" это было весьма нужно и актуально...
Автор: egor23
Дата сообщения: 04.03.2011 20:10

Цитата:
надо просто сделать правильный подсчёт в первой строке

ааааа
а нельзяли для тестовых нужд сделать ключик, чтоыб каждый проход со своей статистикой будет, хочется конкретных цифр.
Автор: Shuld
Дата сообщения: 14.01.2012 19:28
Bulat_Ziganshin

Потестировал на нескольких папках версии 25.12.2011 и 14.01.2012.
Результаты практически совпадают и по времени и по сжатию. Где-то чуть лучше, где-то чуть хуже. По сжатию разница на уровне сотых долей процента, по времени - доли процента. Никакого преимущества не заметно.

Добавлено:
Папки размером от 1 ГБ и больше.

Добавлено:
Хотя...

Compressing 1,082 files, 1,212,406,221 bytes.

FreeArc 0.67 (December 25 2011)
rep:1gb:h24+4x4:i0:lzma:4mb:h32mb:normal:bt4:128
Memory for compression 1380mb, decompression 1064mb, cache 16mb
Compressed 1,082 files, 1,212,406,221 => 847,321,687 bytes. Ratio 69.8%
Compression time: cpu 525.46 secs, real 137.87 secs. Speed 8,794 kB/s

11.01.2012
rep:1gb:c256+4x4:i0:lzma:4mb:h32mb:normal:bt4:128
Compressed 1,082 files, 1,212,406,221 => 847,204,487 bytes. Ratio 69.8%
Compression time: cpu 520.33 secs, real 135.05 secs. Speed 8,977 kB/s

14.01.2012
rep:1gb:c256+4x4:i0:lzma:4mb:h32mb:normal:bt4:128
Compressed 1,082 files, 1,212,406,221 => 847,204,487 bytes. Ratio 69.8%
Compression time: cpu 515.65 secs, real 135.32 secs. Speed 8,959 kB/s
Автор: Bulat_Ziganshin
Дата сообщения: 04.03.2011 20:54

Цитата:
чтоыб каждый проход со своей статистикой будет

нафига она тебе? ты вообще понимаешь, что первый проход ничего не записывает, но считает стат-ку которая бы получилась при сжатии без -f. если она так нужна - можно без -f и сжать
Автор: egor23
Дата сообщения: 14.01.2012 22:45
Bulat_Ziganshin

Цитата:
ещё гляну на фрагментированном файлике

Nero-9.2.6.0_trial.tar 1883МБ 323 фрагмента

1. данные на HDD - запись на другой HDD

старый rep arc + dll
Compressed 1 file, 1,974,371,328 => 510,572,988 bytes. Ratio 25.8%
Compression time: cpu 35.64 secs, real 58.50 secs. Speed 33,750 kB/s

новый rep arc + dll
Compressed 1 file, 1,974,371,328 => 514,212,681 bytes. Ratio 26.0%
Compression time: cpu 33.92 secs, real 40.64 secs. Speed 48,581 kB/s

новый rep arc без dll
Compressed 1 file, 1,974,371,328 => 514,212,681 bytes. Ratio 26.0%
Compression time: cpu 27.19 secs, real 34.92 secs. Speed 56,537 kB/s

новый2 rep arc + dll
Compressed 1 file, 1,974,371,328 => 512,900,101 bytes. Ratio 25.9%
Compression time: cpu 23.06 secs, real 46.11 secs. Speed 42,819 kB/s


2. данные на HDD - запись на HDD

старый rep arc + dll
Compressed 1 file, 1,974,371,328 => 510,572,988 bytes. Ratio 25.8%
Compression time: cpu 36.00 secs, real 61.25 secs. Speed 32,235 kB/s

новый rep arc + dll
Compressed 1 file, 1,974,371,328 => 514,212,681 bytes. Ratio 26.0%
Compression time: cpu 33.48 secs, real 43.34 secs. Speed 45,551 kB/s

новый rep arc без dll
Compressed 1 file, 1,974,371,328 => 514,212,681 bytes. Ratio 26.0%
Compression time: cpu 26.73 secs, real 43.17 secs. Speed 45,733 kB/s

новый2 rep arc + dll
Compressed 1 file, 1,974,371,328 => 512,900,101 bytes. Ratio 25.9%
Compression time: cpu 22.64 secs, real 55.80 secs. Speed 35,385 kB/s

Итого
новый rep arc без dll vs новый2 rep arc + dll
по cpu time новый2 rep быстрее на 15%, но это преимущество можно увидеть в идеальном случае, в теории.

Добавлено:
PS: скорость чтения с диска файла Nero-9.2.6.0_trial.tar ~70МБ\с
Автор: egor23
Дата сообщения: 04.03.2011 21:46

Цитата:
но считает стат-ку которая бы получилась при сжатии без -f.

так мне статистика\скорость реальные нужны, а то что не пишет ещё лучше, наслучай если не устроит результат
Автор: Bulat_Ziganshin
Дата сообщения: 14.01.2012 23:43

Цитата:
по cpu time новый2 rep быстрее на 15%, но это преимущество можно увидеть в идеальном случае, в теории.  


с 11 по 14 января я исключил rep из facompress.dll. изменил дефолт с rep:l512:c256 на rep:l512:c128 плюс переписал встроенный в exe алгоритм crc, у меня лично он стал вдвое быстрее
Автор: Bulat_Ziganshin
Дата сообщения: 04.03.2011 22:06
ну так они и будут реальные - то что будет записано на диск. просто сейчас оно считается некорректно, с учётом "способа записи" используемого в non-f режиме
Автор: Alexander865
Дата сообщения: 04.03.2011 22:18
Bulat_Ziganshin

Обратился я в форум, который ты посоветовал. Но что-то пока тихо.
Меня почему-то терзают сомнения, что с sfx-модулем мне там никто не поможет. iss-скрипт напишут, но iss-скрипт я и сам напишу при желании.

Поэтому надежда на тебя. Правда бюджет мой близок скорее к 30, нежели к 100 долларам.

Напишешь мне за 1000 рублей этот модуль? Или там геморрой тянет на большее?



Автор: egor23
Дата сообщения: 15.01.2012 01:15
Bulat_Ziganshin

Цитата:
с 11 по 14 января я исключил rep из facompress.dll. изменил дефолт с rep:l512:c256 на rep:l512:c128 плюс переписал встроенный в exe алгоритм crc, у меня лично он стал вдвое быстрее

Если ничего больше не делалось, то "переписал встроенный в exe алгоритм crc", ухудшает ситуацию.
"он стал вдвое быстрее" - относительно чего?

1. данные на HDD - запись на другой HDD

новый rep, arc без dll, -mrep:1g:512:c256
Compressed 1 file, 1,974,371,328 => 514,212,681 bytes. Ratio 26.0%
Compression time: cpu 27.14 secs, real 35.20 secs. Speed 56,085 kB/s

новый rep, arc без dll, -mrep:1g:512:c128
Compressed 1 file, 1,974,371,328 => 512,900,101 bytes. Ratio 25.9%
Compression time: cpu 28.77 secs, real 36.19 secs. Speed 54,559 kB/s

новый2 rep, arc + dll, -mrep:1g:512:c256
Compressed 1 file, 1,974,371,328 => 514,212,681 bytes. Ratio 26.0%
Compression time: cpu 21.42 secs, real 43.84 secs. Speed 45,032 kB/s

новый2 rep, arc + dll, -mrep:1g:512:c128
Compressed 1 file, 1,974,371,328 => 512,900,101 bytes. Ratio 25.9%
Compression time: cpu 22.97 secs, real 43.19 secs. Speed 45,716 kB/s


2. данные на HDD - запись на HDD

новый rep, arc без dll, -mrep:1g:512:c256
Compressed 1 file, 1,974,371,328 => 514,212,681 bytes. Ratio 26.0%
Compression time: cpu 26.84 secs, real 43.45 secs. Speed 45,437 kB/s

новый rep, arc без dll, -mrep:1g:512:c128
Compressed 1 file, 1,974,371,328 => 512,900,101 bytes. Ratio 25.9%
Compression time: cpu 28.59 secs, real 42.95 secs. Speed 45,966 kB/s

новый2 rep, arc + dll, -mrep:1g:512:c256
Compressed 1 file, 1,974,371,328 => 514,212,681 bytes. Ratio 26.0%
Compression time: cpu 21.17 secs, real 54.56 secs. Speed 36,185 kB/s

новый2 rep, arc + dll, -mrep:1g:512:c128
Compressed 1 file, 1,974,371,328 => 512,900,101 bytes. Ratio 25.9%
Compression time: cpu 22.02 secs, real 54.16 secs. Speed 36,457 kB/s
Автор: Bulat_Ziganshin
Дата сообщения: 04.03.2011 22:21
так напиши iss, какие проблемы. я с этим не хочу возиться

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

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275

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


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