Ghost2004
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Запустил новую версию со своим стандартным набором rep:1400mb:h27+tempfile+rep:1400mb:h27+lzma:216mb:max . Во-первых, старый архив сжатый таким образом работал точно так же, как и в прошлых версиях. Так что пришлось создавать новый - там всё стало лучше. С ключём -ld2gb распаковка таки пошла по идеальному сценарию: lzma+rep->tempfile->rep->{compressed files}, т.е. создавался лишь один tempfile . В результате total time получилось 789 секунд (extraction time - всегда выходило примерно 400 секунд). Но без такого ключа всё же одна странность вылезла - а именно создалось аж два лишних tempfile'а, так что время распаковки выросоло до 1377 секунд, почти вдвое. Потому как прошло всё таким образом: lzma->tempfile->rep->tempfile->rep->tempfile->{compressed data}. Так что подозреваю, что основные тормоза возникли на последнем tempfile - не ясно, зачем он вообще создавался... Его как-нибудь убрать можно? А в принципе, чем ограничивается lc и ld, если объём памяти 3 Гб? Потому как это явно не 3/4 от всего... В принципе, тут возможным вариантом было бы ставить ограничение по умолчанию в виде максимального непрерывного блока, если 3/4 от всей памяти больше него... Хотя конечно не всегда - просто для вариантов сжатия rep+lzma скорее всего именно в это и упрётся - если не выделять память с оглядкой на последующие алгоритмы совсем хитрым методом (скажем, в данном случае - задом наперёд - сначала для rep, потом для lzma (хотя в распаковке-то пойдёт сначала lzma, а уж потом - rep)). В общем, если не делать хитрых оптимизаций, то лучше в ld ставить по умолчанию минимум из 3/4 total ram и max solid block (либо, как более сложный вариант, пытаться выделить память для цепочки алгоритмов, пока выделение работает и памяти хватает, а как только не хватит, вставлять tempfile). Только надо учитывать, что total ram бывает больше 2 Гб - до 4 Гб (по-моему у меня из-за этого лишние tempfile'ы образуются). |