View Single Post
  #19  
Old 30-09-2017, 18:41
elit elit is offline
Registered User
 
Join Date: Jun 2017
Location: sun
Posts: 265
Thanks: 190
Thanked 325 Times in 119 Posts
elit is on a distinguished road
Today I tried well acclaimed zcm from encode.ru at max settings: -m8 -s -t1. It resulted in ~100mb bigger archive than FA -m5 lol. I also tried to tune zpaq(with x, s options that provide more possibilities) to see if I can get ti to more reasonable speed, while keeping good ratio. I was never able to even match FA -m5 with custom setting, anything other than -m5 was no go.


Anyway, since lzma seems like a best option, I decided to test its various settings to see if I can squeeze more from it while maintaining speed. I was inspired by one user in this forum. For this test I used only 16mb dictionary because I wanted avoid FA throttling when it reach memory limit(it wont 4x4 in such cases). But once worthy parameters are found I test them with default rest against previous posts references. I will also refer compression times.

LZMA have multiple parameters, I tested most important ones: mc, lc, bt4, fb. Later also dictionary for comparison. Fb is also known as "word size" in 7z and it is the one that almost everyone set to max 273. In FA it is only referred as a number without letter in lzma parameters. Ok lets start.

Default lzma16mb:
lzma d16mb: 274.18mb - 27s (rest default: mc32,non-bt4, 32[fb], lc3)

Testing mc:
lzma d16mb mc128: 273.89mb - 58s
lzma d16mb mc1000: 273.78mb - 4.53min

^mc have a huge(multi fold) impact on speed while not giving better ratio by almost nothing - aka 0.1%!

Next I tried fb aka "word":
lzma d16mb 64: 273.97mb - 33s
lzma d16mb 128: 273.85mb - 42s
lzma d16mb 273: 274.07mb - 1min

^between default 32 and 128 is only 0.12% difference while compression time increased 55%. With 273 ratio actually worsened. However, this 273 is also affected by dictionary size, for comparison lzma:273:128mb resulted in 272.03mb while lzma:32:128mb resulted 272.39mb. Still gain is almost nothing but, one took 40s while another 2min!

Testing bt4:
lzma d16mb bt4: 273.36mb - 36s

^this parameter gained 0.3% while slowing packing down by 33%. Meh.

Dictionary 96mb(vs 16mb reference above):
lzma 96mb: 272.59mb - 42s

^0.6% gain, 55% time increase and a memory hog.

Finally, lc:
lzma d16mb lc8: 268.22mb - 28s

^yep, ~2.2% gain for F.R.E.E.


So to conclude, the only option worth changing from default was lc. Now lets use that with default settings and compare with previous posts results(-mc4x4/4x4:lzma:lc8):

lzma lc8: 266.57mb - 42s

^but something funny is here, FA defaults to 64mb dictionary, but in -m5 it use 96mb. Lets enforce it:
lzma 96mb lc8: 266.77mb - 37s

^dont ask me why bigger dictionary resulted in slightly bigger file and lower compression time, I just dont...

Conclusion:
The only parameter worth bragging about was lc, which can give you nice 2.2% for free. Rest I would recommend to leave default. The cost/return seems not worth it but maybe you encounter different scenario. With additional 2.2% gain, FA -m5 now not only canceled scary 2 digit(10%) gain of zpaq(back to single digit), it almost matched razor compressor! Which gave 264.55mb or ~3% gain. But at what cost! Razor is now only ~0.75% better while being 15x slower. FitGirl you are c-r-a-z-y .

And so, default FA -m5, now with lc8 extra tunning is even more appealing to me. Hopefully other people will find this helpful too.

Last edited by elit; 06-10-2017 at 05:44.
Reply With Quote
The Following 10 Users Say Thank You to elit For This Useful Post:
1234567890123 (30-09-2017), 78372 (02-05-2018), Andu21 (01-10-2017), arkantos7 (02-10-2017), COPyCAT (24-01-2018), felice2011 (01-10-2017), oltjon (30-09-2017), Razor12911 (30-09-2017), shazzla (01-10-2017), Simorq (12-10-2017)