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

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

Автор: gjf
Дата сообщения: 01.09.2010 10:59
Bulat_Ziganshin

Цитата:
new version

Прошу прощения, а чего тогда в шапке ссылки старые?
Автор: Bulat_Ziganshin
Дата сообщения: 01.09.2010 11:00

Цитата:
new version

ищи в заголовке "Текущая альфа версия"
Автор: gjf
Дата сообщения: 01.09.2010 11:13
Bulat_Ziganshin
Я так и думал, просто смутило, что "новость" написана
Цитата:
Отправлено: 00:41 01-09-2010 | Исправлено: Bulat_Ziganshin, 00:50 01-09-2010

А в "текущей альфа-версии

Цитата:
Отправлено: 18:15 07-09-2009 | Исправлено: Bulat_Ziganshin, 17:34 26-07-2010


Добавлено:
Кстати, на линке на линукс-версию ошибка 404.
Автор: Bulat_Ziganshin
Дата сообщения: 01.09.2010 11:26
я под одним именем файла выкладываю все альфы, поэтому заголовок и не редактируется

линуксовую 0.67 я ещё не компилял.
Автор: Profrager
Дата сообщения: 01.09.2010 11:57
Bulat_Ziganshin

Цитата:
если команда использует и <stdin> и <stdout>, то её stderr скрывается, так что на экране не остаётся вообще никакого мусора - всё точь-в-точь как при использовании внутренних алгоритмов
а прогресс выполнения консольного приложения контролируется через количество данных, переданных через stdin? Или каким образом?У меня помнится так не получилось реализовать, приходилось читать stdout/stderr дабы выудить оттуда текущий % операции

Цитата:
в результате теперь при наличии достаточного объёма ОЗУ можно использовать lzma-x64 для сжатия со словарём 512-1024 мб в макс. режиме. или использовать 4x4:lzma на пару десятков гиг. и всё это будет распаковываться встроенным lzma - если хватит 32-битной памяти. а можно и внешним, в режиме фильтра временных файлов всё равно не будет
я доволен как слон)

Цитата:
кстати, интересно сравнить с тем, что в планах партии было записано:
а это откуда цитата?
Автор: egor23
Дата сообщения: 01.09.2010 12:18
Profrager

Цитата:
а это откуда цитата?

из первой части топика
http://forum.ru-board.com/topic.cgi?forum=5&topic=24319&start=660#17
Автор: Bulat_Ziganshin
Дата сообщения: 01.09.2010 12:23

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

программа, выполняемая ка фильтр, в этом плане мало чем отличается от встроенного алгоритма - у неё есть входные/выходные буера определённого размера и если она обрабатывает данные строго последовательно, то пока она не сожмёт условно говоря 55-й мегабайт, 57-й она читать не начнёт


Цитата:
а это откуда цитата?

из history.txt. там верхняя половина - действительно история, а нижняя - идеи того, что надо сделать или исправить

Добавлено:

Цитата:
из первой части топика
http://forum.ru-board.com/topic.cgi?forum=5&topic=24319&start=660#17

да, блин эту идею можно было реализовать ещё два года назад, когда у меня появилась 64-битная машина. там делов-то на полдня, и не было бы проблемы с упаковкой игрушек по максимуму
Автор: Profrager
Дата сообщения: 01.09.2010 12:57
Bulat_Ziganshin

Цитата:
у неё есть входные/выходные буера определённого размера и если она обрабатывает данные строго последовательно, то пока она не сожмёт условно говоря 55-й мегабайт, 57-й она читать не начнёт
да это то понятно, меня как раз интересует контроль за входным буфером внешней программы. У меня получалось только записать сразу все входные данные в pipe, а как их кидать порциями и как контролить то, что прога уже прочитала все занесенные данные и надо записать в pipe еще порцию?
Автор: Bulat_Ziganshin
Дата сообщения: 01.09.2010 13:01
lzma-freearc-x64.exe sources: http://freearc.org/download/testing/lzma-freearc-src.arc

Добавлено:
скажем lzma читает/пишет данные небольшими кусками, килобайта по 32. у меня буфера по 256 кб. ОС нигде их не буферизует. у меня в программе выполняются два треда параллельно: один получает данные изнутри и кидает их в пайп к lzma, второй читает их из пайпа от lzma и передаёт дальше в программу. пока второй тред данные не прочитает, lzma просто не сможет пойти дальше. вероятно, у тебя просто не исчпользовалось два треда для одновременной работы с stdin и stdout программы
Автор: THE GUILTY GOD
Дата сообщения: 01.09.2010 13:10
Народ Я переписал скрипт на основе Need for Speed™ Undercover, но куда надо сбросить архивы freearc и как их запустить Я не понял.
Подскажите что мне делать и куда что вписывать
Автор: Profrager
Дата сообщения: 01.09.2010 13:45
Bulat_Ziganshin
спасибо, как буду дома посмотрю исходники. Но по описанию все же не понял как прога определяет, что lzma запрашивает данные в пайпе. Вот с помощью PeekMessage(или как-то так) я могу узнать есть ли данные в выходном пайпе от lzma, которые можно прочитать. С входным так же что-ли? Ладно, потом разберусь с этим)
Кстати, а почему бы так же не отрубать stdout+stderr у внешних компрессоров, у которых задан stdin, ведь его прогресс будет известен, и выводить в консоль его надписи не обязательно. Или мож как-то опционально через arc.ini это задавать.
Автор: Profrager
Дата сообщения: 01.09.2010 16:40
Bulat_Ziganshin
аааа, хееелп. Замучился пытаться скомпилить facompress.dll только с распаковывающими функциями..
Вот добавляю в common.mak, как ты говорил, FREEARC_DECOMPRESS_ONLY
Код: DEFINES = -DFREEARC_DECOMPRESS_ONLY -DFREEARC_WIN -DFREEARC_INTEL_BYTE_ORDER -DWIN32 -D_WINDOWS -D_UNICODE -DUNICODE
Автор: ndch
Дата сообщения: 01.09.2010 17:48
Bulat_Ziganshin

Цитата:
* Multithreaded deflate compressor - fastest on the planet!

конкретно это в каком режиме ?
Автор: V2driver
Дата сообщения: 01.09.2010 18:40
Bulat_Ziganshin каков минимальный размер словаря lzma (кб)????
Автор: Bulat_Ziganshin
Дата сообщения: 01.09.2010 18:57

Цитата:
Bulat_Ziganshin каков минимальный размер lzma (кб)????

что такое размер lzma?


Цитата:
конкретно это в каком режиме ?

при сжатии в zip
Автор: V2driver
Дата сообщения: 01.09.2010 20:54
Bulat_Ziganshin сории)) размер словоря lzma...
Автор: Bulat_Ziganshin
Дата сообщения: 01.09.2010 21:34

Цитата:
каков минимальный размер словаря lzma (кб)????

32 кб


Цитата:
Прям кино) добавил MultiThreading.obj к OBJS, все склепалось) 118'784 - уже хороший размер)

дык кинь мне файлы которые ты изменил


Цитата:
Но по описанию все же не понял как прога определяет, что lzma запрашивает данные в пайпе. Вот с помощью PeekMessage(или как-то так) я могу узнать есть ли данные в выходном пайпе от lzma, которые можно прочитать.

это делается иначе - просто один поток пишет данные в lzma.exe, другой читает её выход. и поскеольку буферизация ограничена, мы знаем, что lzma упаковал все данные, которые мы в него уже записали, за исключением где-то мегабайта


Цитата:
Кстати, а почему бы так же не отрубать stdout+stderr у внешних компрессоров, у которых задан stdin, ведь его прогресс будет известен, и выводить в консоль его надписи не обязательно. Или мож как-то опционально через arc.ini это задавать.

логично, я об этом не успел подумать. настраиваться это должно не в arc.ini, а опцией, обычно нам stdout/err интересен только для отладки
Автор: Profrager
Дата сообщения: 01.09.2010 21:36
Bulat_Ziganshin
пытался упаковать pcf файлик 6,5гб строкой:
Код: arc.exe a -lc6g -ao -s --cache=8 -mrep:512mb:512:a99+srep:m1:l64+lzma:d512m:a1:mfbt4:fb128:mc65536:lc8 -t -dsgenp --display=hoacmnwrfdtske-r -i2 dat.arc data.pcf
Автор: Bulat_Ziganshin
Дата сообщения: 01.09.2010 21:44

Цитата:
затем как ни старался параметром -lc избежать распараллеливание srep и lzma, так и не вышло, они все равно работают одновременно.

ставь -lc-, добавляй tempfile между ними. вообще на lc рассчитывать бесполезно - freearc не знает сколько памяти нужно внешнему lzma/srep в зависимости от их настроек и входных данных


Цитата:
Почему он не видит cmem = 5500 не понятно.

там вообще 32-битное значение, поправлю


Цитата:
решил потестить архив

чуствуется, задолбаюсь я каждому персонально цитировать:
Also mention that lzma-freearc-x64.exe supports only subset of the FreeArc LZMA codec parameters.
Run lzma-freearc-x64.exe without parameters to see the list of options supported.
Автор: Profrager
Дата сообщения: 01.09.2010 21:47

Цитата:
чуствуется, задолбаюсь я каждому персонально цитировать:
Also mention that lzma-freearc-x64.exe supports only subset of the FreeArc LZMA codec parameters.
Run lzma-freearc-x64.exe without parameters to see the list of options supported.

эммм..при чем тут это?
Автор: Bulat_Ziganshin
Дата сообщения: 01.09.2010 21:48
версия от 23 августа сжимала заголовок архива методом lzma:bt4:1m, что lzma.exe распаковать не может (он просто не понимает такой формат записи параметров). сёдняшняя версия сжимает заголовки методом lzma:d1m:mfbt4, так что такой проблемы с нею не будет. но вообще, существующие архивы внешний lzma.exe далеко не все распакует - он пока поддерживает только подмножество набора параметров lzma
Автор: Profrager
Дата сообщения: 01.09.2010 21:58
Bulat_Ziganshin
сори, забыл отрубить arc.ini и совсем не подумал, что заголовок по дефолту тож пакуется) тем более в lzma.
Но вот архивы с сжатием например lzma:250mb:normal:bt4:128:mc1024:lc8 не тестятся arc.exe, хоть нету рядом ни arc.ini, ни lzma-freearc-x64.exe, просто пишет
Код: FreeArc 0.67 (September 1 2010) listing archive: arc00.arc
Segmentation fault/access violation in generated code
Автор: V2driver
Дата сообщения: 01.09.2010 22:04
Bulat_Ziganshin

Цитата:
32 кб

Спасибо

Добавлено:
Bulat_Ziganshin как так?

Параметр сжатия: lzma:32kb:normal:32
Автор: Bulat_Ziganshin
Дата сообщения: 01.09.2010 22:15

Цитата:
Параметр сжатия: lzma:32kb:normal:32

256 кб для входного буфера
Автор: V2driver
Дата сообщения: 01.09.2010 22:17

Цитата:
256 кб для входного буфера

Можно как нибудь уложиться в 32кб озу для распаковки?
Хотябы 128кб это максимум!
Автор: Bulat_Ziganshin
Дата сообщения: 01.09.2010 22:22

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

можно - поменять исходники. а зачем тебе?
Автор: V2driver
Дата сообщения: 01.09.2010 22:44
Bulat_Ziganshin

Цитата:
можно - поменять исходники.

Интересно!

Цитата:
а зачем тебе?

Нужно
Автор: Profrager
Дата сообщения: 01.09.2010 22:49
Bulat_Ziganshin

Цитата:
дык кинь мне файлы которые ты изменил

http://rghost.ru/2508545
тока я там GRZip из dll совсем вырезал) Мне в нем необходимости нет.

Добавлено:

Цитата:
там вообще 32-битное значение, поправлю

Поставил cmem = 4000 для lzma, -lc5g, tempfile не вписывал (думаю мож при распаковке тож параллельно будет работать а я тут его так темп файлом обломлю )- упаковало как я хотел)
Автор: V2driver
Дата сообщения: 01.09.2010 22:54
Bulat_Ziganshin
Фа научится говорить инфу о: rar, 7z, zip и т.д архивах как о .arc ?
http://pics.kz/s1/97/fa/43/97fa4392297a7a0c630c3cf841d3194c.png
http://pics.kz/s2/ca/ed/5b/caed5b4311247e141137156748caf25b.png
Автор: Bulat_Ziganshin
Дата сообщения: 01.09.2010 22:57
V2driver
а откуда мне эту инфу взять?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970

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


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