Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » FreeArc: бесплатный open-source архиватор - Часть 3

Модерирует : gyra, Maz

Widok (23-11-2010 11:37): Лимит страниц. Продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

FreeArc
бесплатный open-source архиватор для Windows и Linux,
сочетающий высокую степень сжатия и большой набор возможностей


Официальный сайт | Скриншоты | Лента новостей
Документация на консольную версию | Документация на GUI версию
Сообщество пользователей FreeArc | Вики | Трекер (рассылка по ошибкам)
Проект на SourceForge.net | SVN-репозиторий | Поддержка InnoSetup
Обсуждение на encode.ru (англоязычное)

Скачать последний релиз - FreeArc 0.666 от 20 мая 2010 г. Что нового: ускорение работы в 1.5-2 раза благодаря новой технологии многопоточного сжатия, распаковка архивов многих форматов используя технологии 7-zip, запуск файлов из архива, исправлены все проблемы интеграции с Explorer (подробнее)
 
Текущая альфа версия: 0.67 - загрузка | список исправлений | блог

FAQ по FreeArc

Подробное описание используемых алгоритмов
Почему он сжимает лучше и быстрее, чем 7-zip/rar...
Результаты тестов, подтверждающие его крутизну... | И немного о будущем...
Почему для использования 2+ гб памяти желательно установить 64-битную версию Windows
Планы дальнейшего развития
Что подразумевается под "интеграцией с Explorer"
Старая FreeArc wiki (включая описание формата архива)
Логотип - объявляется конкурс на иконки для FreeArc

Сторонние оболочки для работы с FreeArc:
  • wArc - простая и понятная программа управления архивами (требует .NET Framework 2.0)
  • PeaZip - менеджер архивов с поддержкой большого количества форматов, для Windows и Linux
     

    Родственные темы:
  • Inno Setup плюс внешние упаковщики - использование архивов FreeArc в инсталяторах
  • Пережатиe/Pекомпрессия/Oптимизация файлов для лучшего сжатия - "а как сжать ещё лучше?"
  • FreeArc и Unix - для альтернативно одарённых
     
    Другие архиваторы:
  • WinRAR
  • 7-zip

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 19:15 07-09-2009 | Исправлено: Bulat_Ziganshin, 18:34 26-07-2010
    CTACKo

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Тестил FreeArc 0.67 (September 1 2010) на предмет х64. Добавил содержимое arc-lzma-x64-filter.ini в arc.ini, скопировал lzma-freearc-x64.exe в папку Bin.
    Жал папку 76Мб. Команды давал такие:

    Код:
    arc.exe a -lc- -m=rep:1g+exe+delta+4x4:b64m:lzma:d64m -t shader shader
    arc.exe a -lc- -mrep:512mb:512:a99+lzma:d512m:a1:mfbt4:fb128:lc8 -t shader shader
    и тп с измененем параметров только словарей
     

    Ни один результирующий архив гуяшным фарком тут же не поднимается, грит:

    Цитата:
    ERROR: bla-bla.arc isn't archive or this archive is corrupt: footer block at pos 768550 failed decomression. Please recover it using 'r' command or use -tp- option to ignore Recovery Record
    хотя консольным даже распаковывается!
     
    Но самое интересное - попытка сжатия только методом lzma роняет фарк сразу же:

    Код:
    arc.exe a -lc- -mlzma:d512m shader shader
    неважно какие еще параметры указать или какой словарь установить - пробовал и 64мб и 128мб. Пока не дашь хоть какую-то прослойку типа rep/4x4 и тп не жмет оно в lzma.

    Всего записей: 180 | Зарегистр. 05-09-2008 | Отправлено: 02:29 15-09-2010 | Исправлено: CTACKo, 02:36 15-09-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    попробуйте кто-нить плиз помочь Стаско, мне лень

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 09:51 15-09-2010
    CTACKo

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    кстати старой версией FreeArc (0.60) все "проблемные" архивы успешно открываются, не открываются именно 0.67й.
     
    Есть еще одна довольно серьезная проблема, касающаяся любой версии:  
    при сжатии большого объема данных (впрочем объем неважен, но при большом заметен быстрее) временные файлы "складываются" в прописанный временный каталог и если арк "упадет" от нехватки там (во времянке) места, или по какой другой причине - он за собой не убирает, т.е. созданные временные файлы не удаляются, остаются и занимают место! Это в свою очередь влечет за собой дальнейшую невозможность паковать что-либо вообще, т.к. то место что там было остается занятым неубитыми временными файлами предыдущих неудачных сессий.  
    При этом б0льшая часть юзеров даже не поймет в чем дело и где искать причину. Еще большая часть юзеров вообще не представляют себе что такое каталог временных файлов и где его искать чтобы почистить. Оно, конечно, может сработать виндовая чистилка, но не всегда и опять же ламеры не поймут.
    Поэтому я считаю так - если отваливаешься неважно по какой причине, то перед выходом надо подтереть те временные файлы, что были созданы в текущей сессии.
    Добавлено:
    Мб при создании временных файлов можно сразу ставить их в очередь на удаление каким-то независимым от фарка процессом/потоком, который их будет пытаться удалить все время, пока они существуют, но не сможет, пока фарк их использует и "не отпускает". Т.е. такой поток будет автоматом удалять временные файлы сразу как только это станет возможным, что будет происходить по окончанию сжатия или при падении фарка.

    Всего записей: 180 | Зарегистр. 05-09-2008 | Отправлено: 10:43 15-09-2010 | Исправлено: CTACKo, 11:03 15-09-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    при сжатии большого объема данных временные файлы "складываются" в прописанный временный каталог и если арк "упадет" от нехватки там (во времянке) места - он за собой не убирает, т.е. временные файлы остаются!  

    этот косяк записан. такой код есть, но что-то там видно недоделано. беду с 99% юзеров, жмущих на mx, ты правильно подметил

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 10:46 15-09-2010
    CTACKo

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    кстати вот еще можно какую заплатку забодяжить - фарк создает временные файлы всегда в однотипно названных папках, начинающихся с freearc. Так вот, при очередном запуске фарка можно проверять наличие таких папок во времянке и удалять оные при обнаружении. Т.е. производить автозачистку ТЕМРа от своего же мусора Можно так же при бодяжить к гуяшной версии нехитрую кнопу, по которой временная папка будет очищаться от вообще любого всего что там есть и не "занято".

    Всего записей: 180 | Зарегистр. 05-09-2008 | Отправлено: 10:53 15-09-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

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

    Цитата:
    Можно так же при бодяжить к гуяшной версии нехитрую кнопу, по которой временная папка будет очищаться от вообще любого всего что там есть и не "занято".

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

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 10:57 15-09-2010
    CTACKo

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    в первом варианте, если с тем файлом идет работа его и так невозможно удалить - он же "занят"! Не пойму какая тут мб проблема - резонно игноришь удаление и все.  
    И прочти пож. еще раз мой второй пост на этой странице - я там дописал по поводу, ты мб не прочитал, т.к. еще не было:

    Цитата:
    Добавлено:
    Мб при создании временных файлов можно сразу ставить их в очередь на удаление каким-то независимым от фарка процессом/потоком, который их будет пытаться удалить все время, пока они существуют, но не сможет, пока фарк их использует и "не отпускает". Т.е. такой поток будет автоматом удалять временные файлы сразу как только это станет возможным, что будет происходить по окончанию сжатия или при падении фарка.

    Всего записей: 180 | Зарегистр. 05-09-2008 | Отправлено: 11:02 15-09-2010 | Исправлено: CTACKo, 11:04 15-09-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    в первом варианте, если с тем файлом идет работа его и так невозможно удалить - он же "занят"!

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

    Цитата:
    И прочти пож. еще раз мой первый пост на этой странице - я там дописал по поводу, ты мб не прочитал, т.к. еще не было.

    что именно?
     
    Добавлено:

    Цитата:
    И прочти пож. еще раз мой второй пост на этой странице - я там дописал по поводу, ты мб не прочитал, т.к. еще не было:  

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

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 11:06 15-09-2010
    CTACKo

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    так ведь если фарк упадет по какой-либо причине очередь может просто не отработать! Ведь неизвестно что и где произойдет.
    Смотри, фарк во время сжатия может создавать процесс-сателит, назовем его уборщик. При этом ПИД созаланного уборщика фарк запоминает, а уборщик запоминает ПИД фарка-родиделя. Уборщик мониторит наличие родителя по ПИДу. Фарк, если все удачно и без ошибок прошло - убивает уборщика. Если не все ок, т.е. крэшбумбенг уборщик остается и видит что родитель отвалился, убирает за ним и отваливается сам. По- идее не ак уж сложно и по крайней мере пока идут бэты/альфы - вполне резонное решение на мой взгляд.

    Всего записей: 180 | Зарегистр. 05-09-2008 | Отправлено: 11:39 15-09-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    да, это слишком замороченно

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 11:43 15-09-2010
    CTACKo

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    еще тут столкнулсо с непоняткой одной:
    значит написал я себе батник на упаковку. Поскольку на разделе где времянка места только 7гб, а я жму данных 12гб, то решил на время сжатия перенести времянку. В доке видел что можно задавать в -w, но я решил не вписывать в каждую строку упаковки -w, вместо этого в начале командника написал:
    Код:
    set temp = F:\temp
    однако это никак не повлияло на процесс и временные файлы ломанулись в С: как и прежде. Я тогда чисто ни на что не рассчитывая изменил в начале командника:
    Код:
    set tmp = F:\temp
    и вот что интересно - фарк отказался паковать вообще с сообщением "...Disk Full?". Т.е. создается впечатление, что фарк вместо переменной среды %TEMP%, указанной в доке (-w%TEMP%), использует %TMP%, а мб и обе.
    Решилось все когда таки вписал в каждой строчке упаковки -w"f:\temp".
     
    И еще - собственно автозачистка необходима и в консольной версии тоже, именно из-за того, что когда сжатие задано в команднике и посреди его один раз арк падает от нехватки места, то все оставшиеся неисполненными в батнике команды упаковки=колхоз "напрасный труд", и ночь прошла даром Пришлось добавить в батнике после каждой строки упаковки:
    Код:
    ERASE /F /S /Q J:\Temp\*.*
    но это уже для следующей ночи.
     
    Интересно, вот если реп находит повтор, можно ли как-то где-то узнать меж какими файлами нашлись повторы, а меж какими - нет, чтобы для следующего сжатия файлы с повторами разместить рядом? Ну скажем задал я окно 512мб, а повторы нашлись в начале и в конце, т.е. 450 мб в середине - без особых попаданий. Вот если узнать какие файлы с повторами, то их мб разместить при сжатии вместе и тогда можно будет либо уменьшить словарь без ухудшения сжатия, либо при том же словаре найдется еще больше повторов - т.е. сжатие окажется еще лучше. Может ли иметь место какой-либо анализатор, который бы дал отчет на эту тему? Т.е. какая-то прога проанализировала бы какие файлы имеют меж собой больше выгодных повторов, какой размер словаря был бы оптимальным и т.п. Если бы такой анализ был бы встроен в фарк, он бы по результатам анализа при последующем сжатии сам размещал бы файлы в соотв. порядке. Пусть бы даже анализ начинался с словарем в 2Гб или если х64 -то и того боле... Это не только для репы полезно, но и для лзма. Да, сжатие с анализом заняло бы уйму времени, но кому надо - на такое пойдут, это 100%.  
    Или это все уже в srep-е есть и нех тут мозг сношать ? Но srep ищет повторы на дальних дистанциях, это другое. Это для вариантов, когда файлы идут размерами по несколько гиг каждый и некуда деваться, т.е. тасовать их порядок при сжатии  практически бесполезное занятие. Кстати говоря раз srep ищет повторы на дальних дистанциях, то анализатор как раз на его основе можно делать.
     
    Добавлено:
    Вот есть такой режим сжатия 4х4 - это когда запускается сжатие в 4 потока. Это правильно и модно, но он не то чтобы заточен, но так и просится для использования на 4х-ядерных платформах.  
    А нельзя ли для такой же большой армии 2х-ядерных процов забацать режим 2х2? Я понимаю что сейчас и 4х4 работает, просто по 2 потока на ядро, но это как бэ избыточно. Я не уверен в принципе, есть ли смысл в 2х2, но не сошли еще с полей четвёртые пни, у которых второе ядро типа НТ, да и для 1-ядерных решений получится 2 потока.
    Опять же на подходе 6-ядерное решение от АМД - тоже надо реагировать в 6х6
    Ну и для 4х-ядерных обрубков от АМД еще придется мутить 3х3

    Всего записей: 180 | Зарегистр. 05-09-2008 | Отправлено: 12:48 15-09-2010 | Исправлено: CTACKo, 15:10 15-09-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ко всем - не редактируйте уже отправленные сообщения чтобы дописать в них новую мыслью. я не могу перечитывать их по 100 раз
     

    Цитата:
    А нельзя ли для такой же большой армии 2х-ядерных процов забацать режим 2х2?

    самое прикольное - что ты всё это пишешь серьёзно. 4x4 детектит число ядер, можно его задать принудительно параметром :t или опцией -mt
     

    Цитата:
    использует %TMP%

    читай описание GetTempPath
     

    Цитата:
    Интересно, вот если реп находит повтор, можно ли как-то где-то узнать меж какими файлами нашлись повторы,  

    делай

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 15:26 15-09-2010 | Исправлено: Bulat_Ziganshin, 15:27 15-09-2010
    V2driver



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Интересно, вот если реп находит повтор, можно ли как-то где-то узнать меж какими файлами нашлись повторы,  

    Это REP а не Xdelta

    Всего записей: 462 | Зарегистр. 01-02-2010 | Отправлено: 18:36 15-09-2010
    CTACKo

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    не понял юмора... Xdelta вычисляет разницу меж двумя файлами. При чем здесь это?

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

    Всего записей: 180 | Зарегистр. 05-09-2008 | Отправлено: 00:21 16-09-2010 | Исправлено: CTACKo, 00:21 16-09-2010
    immortal223



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    А нет ли ARC-плагина для Total commander?
     
    Добавлено:
    кАк распаковывать по Ctrl+PgDown я разобрался. А как упаковывать в ARC средствами Тотала?

    ----------
    Immortal Chess Forum

    Всего записей: 1453 | Зарегистр. 09-10-2004 | Отправлено: 20:29 16-09-2010
    Rustamer



    Ореховый магнат
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    immortal223
    А чем MultiArc не устроил? Бери да подключай - вроде уже выше обсуждали. Пройдись по версии для печати - там и готовое было.
    офтоп: хороший сайт у тебя в подписи, приглянулся  

    Всего записей: 1723 | Зарегистр. 16-02-2005 | Отправлено: 21:11 16-09-2010 | Исправлено: Rustamer, 21:14 16-09-2010
    KillTimer



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Пытаюсь собрать FA по инструкции. Дохожу до компиляции SFX модулей, захожу в папку Unarc, делаю make, начинается компиляция и после сборки C_LZMA.o тут же заканчивается с ошибкой:

    Код:
    C:\Base\Compiler\ghc\gcc-lib\dllwrap.exe: CreateProcess: No error
    make.EXE: *** [FreeArc.fmt] Error 1

    Что я сделал не так ?
     
    UPD: Проверил на трех машинах (XPSP3, ViSP2 x64, W7 x86) везде одна и та же ошибка Кто-нибудь кроме Булата его вообще собирает под виндой?

    Всего записей: 144 | Зарегистр. 13-05-2009 | Отправлено: 16:36 18-09-2010 | Исправлено: KillTimer, 16:21 19-09-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    может фишка в том что у меня cygwin старый в path болтается? или mingw?

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 17:40 19-09-2010
    Profrager



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KillTimer
    я собирал, подобных проблем не возникало.
     
    Добавлено:
    Только у меня делфийский make.exe перекрывает того, что в mingw, поэтому прописывал вручную полный путь. Типа такого:

    Код:
    f:
    cd "F:\FreeArcSrc\0.67a (2010.09.01)\Unarc\"
    C:\Base\MinGW\bin\make.exe

    Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 20:21 19-09-2010
    KillTimer



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bulat_Ziganshin

    Цитата:
    или mingw?

    Да, проблема была в MinGW. Со старым не собиралось, поставил новый с сайта, не помогло.
    Потом поставил TDM-GCC и процесс пошел.

    Всего записей: 144 | Зарегистр. 13-05-2009 | Отправлено: 01:16 21-09-2010
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106

    Компьютерный форум Ru.Board » Компьютеры » Программы » FreeArc: бесплатный open-source архиватор - Часть 3
    Widok (23-11-2010 11:37): Лимит страниц. Продолжаем здесь


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru