Ghost2004
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте. Меня очень порадовало появление подобного архиватора с множеством препроцессоров и возможностью их настройки . Особенно - rep - он хоть и жадный до памяти, но очень быстрый и подходящий как раз для немалой доли используемых мною файлов - а именно таких, в которых есть два или более больших файла (скажем, образов CD/DVD приставочных игр), в которых большая часть информации попросту идентична, но находится на большом расстоянии. Поэтому хочется разобаться с парочкой проблем связанных с rep . Во-первых (в версии 0.40-prerelease 4), объём памяти требуемой и используемой паямти отображается не совсем корректно - например, rep:544mb ребует вовсе не 680 mb для компрессии, а все 800 - потому какразмер хэш-таблицы устанавливается в 256 mb а не 544/4=136 mb. Но это не самая критичная проблема - дело в том, что у меня (судя по всему оно связано с предыдущей) архивация иногда вылетает с ошибкой: Stack space overflow: current size 8388608 bytes. use '+RTS -Ksize' to increase it. arc: compression Lib_d42d: interrupted Правда, обычно такое бывает если использвоть последовательность двух rep подряд (зачем оно нужно? - скажем, при сжатии одной игрушки последовательность rep:32mb+rep:312mb дала примерно тот же результат, что и rep:512mb, а памяти потребовалось в 1.5 раза меньше - да и для других подобных архивов оно часто бывает верно, хоть и с другими размерами словарей). Несколько тестов показали, что последовательность (на наборе данных примерно 2 Гб - тоже образы CD) rep:32mb:32+rep:544mb:32+tempfile+(любой алгоритм - хоть rep:1mb ) вылетатет с такой ошибкой, да что там, даже rep:32mb:32+rep:384mb:32:h26+tempfile+rep:1mb (вот если 372mb, а не 384 или больше, то работает) ... При этом без tempfile'а этой ошибки нету - но как же без него, если дальше надо сжимать lzma с тяжёлыми настройками, вроде 7bx (памяти у меня 1 Гб). В общем, это уже известная ошибка? |