cls-zpaq

CLS cls-zpaq 0.20.09.07

Нет прав для скачивания

Shegorat

Lord of Madness
Администратор

toolame

Старожил
Проверенный
де-дубликация, быстрое обновление архива, версии файлов...
или просто только сжатие?
 

Shegorat

Lord of Madness
Администратор
Только сжатие. В FA через cls идёт потоковое сжатие, я получаю просто обезличенные данные. Поэтому пофайловую дедупликацию, обновление и прочее реализовать не получится. Увы :unknown:
 

toolame

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

toolame

Старожил
Проверенный
а чо прогесс не считается?
как то сложно понять работает или нет...
только по нагрузке на CPU (и то хрен определишь сдох или жив)
 

Shegorat

Lord of Madness
Администратор
Прогресс считается. Данные считываются порциями, по 4мб, если не ошибаюсь. Собственно FA обновляет прогресс по считанным данным
 

toolame

Старожил
Проверенный
а у меня нет
если с srep то 99% и жди
если только zpaq - то останавливается в районе 3% и жди
на входе 1GB
 

Shegorat

Lord of Madness
Администратор
Могу собрать библиотеку с отладочные выводом, чтобы проверить этот момент
 

toolame

Старожил
Проверенный
оуу, кажись считается
просто на m=5 это настолько долго что я не выдерживаю и сворачиваю, а вспоминаю когда уже все сделано))

тестик на файлах Divinity: Original Sin 2

Data\Textures.pak

srep:m5f:l256:s2gb:a0+zpaq:m=5
1,074,167,300 => 359,876,399 bytes

srep:m5f:l16384:s2gb:a0+lolz_22c4:ldmf1:ldl5:ldc0:mtt0:mt1:mtb80:d240:gm20
1,074,167,300 => 335,972,247 bytes

thread 0 : w/o manager mem_usage = 234 kb, manager mem_usage = 150 kb
alloc mem = 8192 kb, stat compr_size = 4680
matches num = 626, additional mem overhead = 2364 kb

o1 model : 8'387 kb
raw graphic model 8 bit : 1'380 kb
dxt1 model : 304'644 kb
dxt3 model : 14'767 kb
dxt5 model : 591'833 kb
o1 model pos mod 2 : 3'990 kb
o1 model pos mod 4 : 3'543 kb
o1 model pos mod 8 : 39'692 kb
o1 model pos mod 16 : 38'314 kb
total size : 1'006'554 kb

total decode mem usage = 277mb

Data\Origins.pak (предварительно разжатый из LZ4)

srep:m5f:l256:s2gb:a0+razor:512M
1,074,133,163 => 331,512,575 bytes

srep:m5f:l16384:s2gb:a0+lolz_22c4:ldmf1:ldl5:ldc0:mtt0:mt1:mtb80:d240:gm20
1,074,133,163 => 312,772,455 bytes

srep:m5f:l256:s2gb:a0+zpaq:m=5
1,074,133,163 => 290,713,561 bytes

thread 0 : w/o manager mem_usage = 3327 kb, manager mem_usage = 2805 kb
alloc mem = 8192 kb, stat compr_size = 86936
matches num = 15840, additional mem overhead = 2988 kb

o1 model : 93'918 kb
raw graphic model 8 bit : 4'049 kb
raw graphic model 16 bit : 4'751 kb
raw graphic model 24 bit : 63 kb
raw graphic model 32 bit : 590'623 kb
dxt3 model : 31 kb
dxt5 model : 14'752 kb
o1 model pos mod 2 : 42'786 kb
o1 model pos mod 4 : 97'045 kb
o1 model pos mod 8 : 81'148 kb
o1 model pos mod 16 : 40'916 kb
total size : 970'088 kb

total decode mem usage = 281mb
ща прогоню последний еще раз lolz но srep:l256
 

toolame

Старожил
Проверенный
+++
Divinity: Original Sin 2
Data\Origins.pak (предварительно разжатый из LZ4)

srep:m5f:l256:s2gb:a0+lolz_22c4:ldmf1:ldl5:ldc0:mtt0:mt1:mtb80:d240:gm20
1,074,133,163 => 315,429,255 bytes
thread 0 : w/o manager mem_usage = 1204 kb, manager mem_usage = 1165 kb
alloc mem = 8192 kb, stat compr_size = 80476
matches num = 15267, additional mem overhead = 3014 kb

o1 model : 89'338 kb
raw graphic model 8 bit : 1'992 kb
raw graphic model 16 bit : 4'142 kb
raw graphic model 32 bit : 496'021 kb
dxt3 model : 161 kb
dxt5 model : 8'512 kb
o1 model pos mod 2 : 33'145 kb
o1 model pos mod 4 : 118'796 kb
o1 model pos mod 8 : 39'949 kb
o1 model pos mod 16 : 40'968 kb
total size : 833'029 kb

total decode mem usage = 285mb
lolz_22c4:ldmf1:ldl5:ldc0:mtt0:mt1:mtb80:d240:gm20
1,074,133,163 => 312,037,179 bytes
thread 0 : w/o manager mem_usage = 13536 kb, manager mem_usage = 9007 kb
alloc mem = 16384 kb, stat compr_size = 86390
matches num = 16375, additional mem overhead = 2940 kb

o1 model : 104'000 kb
raw graphic model 8 bit : 4'534 kb
raw graphic model 16 bit : 5'535 kb
raw graphic model 24 bit : 102 kb
raw graphic model 32 bit : 629'852 kb
dxt3 model : 266 kb
dxt5 model : 16'346 kb
o1 model pos mod 2 : 34'699 kb
o1 model pos mod 4 : 105'221 kb
o1 model pos mod 8 : 105'498 kb
o1 model pos mod 16 : 42'899 kb
total size : 1'048'958 kb

total decode mem usage = 280mb
хмм.. так это типа PAQ только немного Z?
пока тестировал архив в zpaq, lolz успел два раза пожаться
симметричная одноядерная улитка...
 

Shegorat

Lord of Madness
Администратор
хмм.. так это типа PAQ только немного Z?
Ну собственно пока да. libzpaq предоставляет только само сжатие. А многопоточность и и прочие плюшки реализованы уже на другом уровне. Как будет достаточно времени - всё, что можно, добавлю
 

toolame

Старожил
Проверенный
а 4x4 ломается... хех
srep:m5f:l256:s2gb:a0+4x4:b192mb:zpaq:m=1
1,074,133,163 => 530,526,192 bytes
Testing 1 file, 1,074,133,163 bytes. Processed 0.0%Oops: missing end of segment marker
 

toolame

Старожил
Проверенный
хммм, действительно, не припомню чтобы у меня где то работало
тогда fazip! 😏
Код:
[External compressor:fazip,fazip64]
header = 0
packcmd   = {compressor} -i0 compress{:option} <stdin> <stdout>
unpackcmd = {compressor} -i0 decompress{:option} <stdin> <stdout>
4x4:b192mb:fazip:zpaq:m=1 => 539,490,511
Tested 1 file, 539,490,511 => 1,074,133,163 bytes. Ratio 50.23%
Testing time: cpu 0.48 sec/real 4.64 sec = 10%. Speed 231.47 mB/s

4x4:b192mb:fazip:zpaq:m=5 => 291,638,832
Tested 1 file, 291,638,832 => 1,074,133,163 bytes. Ratio 27.15%
Testing time: cpu 0.58 sec/real 1064.46 sec = 0%. Speed 1.01 mB/s

srep cls'овский только не подцепишь, fazip же .ini файлы вроде никакие не читает, нет?
upd:
srep:m5f:l256:s2gb:a0+4x4:b192mb:fazip:zpaq:m=5
работает без проблем, хз почему у меня раньше ломалось...
 
Последнее редактирование:

toolame

Старожил
Проверенный
кста, как насчет х64 компила?
я бы затестил скорости
 

Shegorat

Lord of Madness
Администратор
эххх.. мечтаю
де-дубликация zpaq+srep+lolz
Пофайловую дедупликацию внутри какого-либо алгоритма не получится сделать. Т.к. алгоритм принимает на вход уже обезличенные данные. Вроде я это уже говорил. Пофайловая делается уровнем выше. И это скорее сломает обратную совместимость. Т.к. придется менять структуру архива
 

Edison007

Ветеран
Модератор
как вариант, добавить сортировку по хэш-сумме, тогда дубликаты окажутся рядом и должны хорошо "убиваться", и обратная совместимость должна будет остаться
 
Сверху