The default number of LZMA2 chunks per solid block in 7z archive was increased to 64.
It allows to increase the compression speed for big 7z archives, if there is a big number
of CPU cores and threads.
The speed of PPMd compressing/decompressing was increased for 7z/ZIP/RAR archives.
The new -ssp switch. If the switch -ssp is specified, 7-Zip doesn't allow the system
to modify "Last Access Time" property of source files for archiving and hashing operations.
Some bugs were fixed.
New localization: Swahili.
What's new after 7-Zip 19.00:
7-Zip now supports new optional match finders for LZMA/LZMA2 compression: bt5 and hc5,
that can work faster than bt4 and hc4 match finders for the data with big redundancy.
The compression ratio was improved for Fast and Fastest compression levels with the
following default settings:
Fastest level (-mx1) : hc5 match finder with 256 KB dictionary.
Fast level (-mx3) : hc5 match finder with 4 MB dictionary.
Minor speed optimizations in multithreaded LZMA/LZMA2 compression for Normal/Maximum/Ultra
compression levels.
bzip2 decoding code was updated to support bzip2 archives, created by lbzip2 program.
New localization: Turkmen.
7-Zip now can unpack files encoded with Base64 encoding (b64 filename extension).
7-Zip now can use new x86/x64 hardware instructions for SHA-1 and SHA-256, supported
by AMD Ryzen and latest Intel CPUs: Ice Lake and Goldmont.
It increases
the speed of SHA-1/SHA-256 hash value calculation,
the speed of encryption/decryption in zip AES,
the speed of key derivation for encryption/decryption in 7z/zip/rar archives.
The speed of zip AES encryption and 7z/zip/rar AES decryption was increased with
the following improvements:
7-Zip now can use new x86/x64 VAES (AVX Vector AES) instructions, supported by
Intel Ice Lake CPU.
The existing code of x86/x64 AES-NI was improved also.
There is 2% speed optimization in 7-Zip benchmark's decompression.
Notes about changes in 7-Zip 20.02
Te size of solid block for 7z/LZMA2 archives was increased, so 7-Zip can use more threads and chunks to compress solid block. It can improve the compression speed for multi-core processors like Threadripper/Epyc and Xeon. Also it can slightly improve multi-core LZMA2 decompression speed.
Some important parts of PPMd code were rewritten for faster compression and decompression.
And that new PPMd code works faster for data that is not too compressible, like exe files or already compressed data.
Also PPMD in previous 7-Zip could be slow in some Intel CPUs for decompression, if CVE-2018-3639 Speculative Store Bypass (SSB) mitigation was enabled in system. And new PPMd code must work faster for such cases too.
Another change of 7-Zip 20.02 is speed optimization in Delta filter code, that is about two times faster than in previous version.
7-Zip testing
You can post the results of tests to this forum thread to show the changes between 7-Zip 20.00 and new 7-Zip 20.02.
Notes: you can test any version of 7-Zip without full installation.
You just need to extract exe installer of 7-Zip as archive file to any folder and run 7-zip from that folder.
Tne following command is a benchmark command that can show some changes of new version 20.02:
7zb-mmt=*-mm=*-bt>b.txt
The only expected changes in benchmark results between 20.00 and 20.02 versions are PPMd and Delta lines.
If you have CPU with big number of threads, you can compare 7z/LZMA2 compression speed for big data (more than 4 GB) with versions 20.00 and 20.02:
Thanks.
Also the idea was to have both results for 20.00 and 20.01 versions to see exact changes in speed.
And it's better to test for real file set with many usual files - small and big files. The difference in new version 20.01 is how 7-Zip combines files to groups in solid blocks.
Last edit: Igor Pavlov 2020-08-07
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have compressed a 91.75MB text file with ppmd:o9:mem596m on a Core2 Duo P7350, x86. Both 7-Zip 20.00 and 20.01 produced a 21.5MB archive. 7-Zip 20.00 took 33.9 seconds, 20.01, 32.2 seconds - a 5% improvement. Not bad.
Thanks for the -ssp switch - it is really handy. However, I have not tested it yet because I need to find out a way for doing that: Windows Explorer changes last access time on its own.
🎉
1
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have performed tests at the same P7350 with Igor Pavlov's approach, the results are attached. I have also tried Large Pages, but it seems that 7-Zip has fallen back to ordinary pages. I don't want to reboot my computer now, so I'll conduct LP tests on another computer.
Some results for Delta and PPMd follow. Strangely, 7-Zip 20.01 performs worse for 2-thread mode. Maybe there was some system activity during the test.
Here are some tests for i5-3570 under Windows 10. Unlike Vista, this OS tends to equalize load on logical CPUs, so single-thread performance should be lower (with the same CPU). Large Pages show measurable impact - around 10% speed increase for single-threaded x64 LZMA. x86 is the same 10% below x64 for LZMA.
For x64 in single-threaded mode, PPMd:x5 is 9% faster in 7-Zip 20.01 than in 7-Zip 20.00 (large pages on). Delta:4 shows more than 2x improvement. These results are consistent with P7350, so I assume the optimizations are algorithmic and not CPU-specific.
Large Pages also improve PPMD speed with big "mem" settings.
New version 20.01 shows CPU microcode revision (->1720): But it has the bug in code. It must show (17->20). I'll fix it in next version.
I'm not sure if this is a new v20.01 issue, but adding NOTHING to a big archive takes forever... (instead of the expected time for checking and displaying "Add new data to archive: 0 files, 0 bytes")
Last edit: Peter 2020-08-07
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Use same folders in copy operation as in your update command of 7-Zip.
40 minutes of data copying is slow.
So we must find the reason of that speed.
You can use smaller archives and files (30 GB). It must be larger than RAM size.
An it's better to create another thread for that problem.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
@Igor Pavlov: Can you please move this speed issue to another thread? (I don't have the necessary rights).
A robocopy for this 106GB file takes 26 minutes and 20 seconds.
If the smaller archive files must be larger then RAM size, they have to be bigger then my actual 64B RAM .-)
Just to understand the update process:
An update of this 7z archive needs only some minutes to check that there are 0 files and 0 bytes to change and then additional 40 minutes to complete this "do nothing" operation?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
So it's two different problems:
1) Slow data copy operation in your system
2) 7-Zip always copies data from old version of archive to new version of archive. It's default action for any update operation.
I'll look second problem later to optimize the code for such case, when there are no files to update.
👍
3
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Any such change in GUI requires additional field in restricted window space.
Also it can require transation for all supported languages.
So it's not so simple to add such small changes to GUI.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
7-Zip 20.02 alpha was released.
7-Zip for 64-bit Windows x64:
https://7-zip.org/a/7z2002-x64.exe
7-Zip for 32-bit Windows:
https://7-zip.org/a/7z2002.exe
What's new after 7-Zip 20.00 alpha:
It allows to increase the compression speed for big 7z archives, if there is a big number
of CPU cores and threads.
to modify "Last Access Time" property of source files for archiving and hashing operations.
What's new after 7-Zip 19.00:
that can work faster than bt4 and hc4 match finders for the data with big redundancy.
following default settings:
compression levels.
New localization: Turkmen.
7-Zip now can unpack files encoded with Base64 encoding (b64 filename extension).
by AMD Ryzen and latest Intel CPUs: Ice Lake and Goldmont.
It increases
the following improvements:
Intel Ice Lake CPU.
Notes about changes in 7-Zip 20.02
Te size of solid block for 7z/LZMA2 archives was increased, so 7-Zip can use more threads and chunks to compress solid block. It can improve the compression speed for multi-core processors like Threadripper/Epyc and Xeon. Also it can slightly improve multi-core LZMA2 decompression speed.
Some important parts of PPMd code were rewritten for faster compression and decompression.
And that new PPMd code works faster for data that is not too compressible, like exe files or already compressed data.
Also PPMD in previous 7-Zip could be slow in some Intel CPUs for decompression, if CVE-2018-3639 Speculative Store Bypass (SSB) mitigation was enabled in system. And new PPMd code must work faster for such cases too.
Another change of 7-Zip 20.02 is speed optimization in Delta filter code, that is about two times faster than in previous version.
7-Zip testing
You can post the results of tests to this forum thread to show the changes between 7-Zip 20.00 and new 7-Zip 20.02.
Notes: you can test any version of 7-Zip without full installation.
You just need to extract exe installer of 7-Zip as archive file to any folder and run 7-zip from that folder.
Tne following command is a benchmark command that can show some changes of new version 20.02:
The only expected changes in benchmark results between 20.00 and 20.02 versions are
PPMdandDeltalines.If you have CPU with big number of threads, you can compare 7z/LZMA2 compression speed for big data (more than 4 GB) with versions 20.00 and 20.02:
7-Zip 20.02 can be faster than 20.00, if your CPU has big number of threads.
What's new after 7-Zip 20.01 alpha: the bug was fixed: 7-Zip File Manager 20.01 could lock archive files while 7-Zip File Manager is running.
Last edit: Igor Pavlov 2020-08-08
My benchmark results for a i9-9900k with 64GB RAM
Update: Added the v20 results.
Update 2: Benchmark with my \Program Files-Directory
Last edit: Peter 2020-08-07
Thanks.
Also the idea was to have both results for 20.00 and 20.01 versions to see exact changes in speed.
And it's better to test for real file set with many usual files - small and big files. The difference in new version 20.01 is how 7-Zip combines files to groups in solid blocks.
Last edit: Igor Pavlov 2020-08-07
Here are benchmark comparisons of 7-Zip 20.00 vs 20.02 on my i5-7600K.
9900K@5000 MHz, RAM@4000 MHz
7z 20.02 x64
Last edit: Piotr Biesiada 2020-08-08
Any chance to add par2 to recovery record of 7z archives?
https://en.wikipedia.org/wiki/Parchive
i don't plan par support for near future
The sources are availible to this version right or will they be posted when they are fully ready?
I have compressed a 91.75MB text file with
ppmd:o9:mem596mon a Core2 Duo P7350, x86. Both 7-Zip 20.00 and 20.01 produced a 21.5MB archive. 7-Zip 20.00 took 33.9 seconds, 20.01, 32.2 seconds - a 5% improvement. Not bad.Thanks for the
-sspswitch - it is really handy. However, I have not tested it yet because I need to find out a way for doing that: Windows Explorer changes last access time on its own.@shell Try again for 3-4 times and let's hope it's the same results.
7-Zip's internal tests (see below) show even greater improvement, so the result is confirmed.
I have performed tests at the same P7350 with Igor Pavlov's approach, the results are attached. I have also tried Large Pages, but it seems that 7-Zip has fallen back to ordinary pages. I don't want to reboot my computer now, so I'll conduct LP tests on another computer.
Some results for Delta and PPMd follow. Strangely, 7-Zip 20.01 performs worse for 2-thread mode. Maybe there was some system activity during the test.
20.00, 1 thread:
PPMD:x5 1745 96 3069 2958 155 149
Delta:4 432182 97 2746 2655 138 134
20.01, 1 thread:
PPMD:x5 1910 97 3346 3237 168 163
Delta:4 844475 99 2616 2594 132 131
20.00, 2 threads:
PPMD:x5 2540 198 2175 4305 110 218
Delta:4 515874 198 1600 3170 81 161
20.01, 2 threads:
PPMD:x5 1524 197 1310 2584 66 131
Delta:4 721177 198 1121 2215 57 112
20.01, 2 threads (new run):
PPMD:x5 3359 198 2871 5694 145 288
Delta:4 1304400 199 2015 4007 102 203
Last edit: Shell 2020-08-07
Here are some tests for i5-3570 under Windows 10. Unlike Vista, this OS tends to equalize load on logical CPUs, so single-thread performance should be lower (with the same CPU). Large Pages show measurable impact - around 10% speed increase for single-threaded x64 LZMA. x86 is the same 10% below x64 for LZMA.
For x64 in single-threaded mode, PPMd:x5 is 9% faster in 7-Zip 20.01 than in 7-Zip 20.00 (large pages on). Delta:4 shows more than 2x improvement. These results are consistent with P7350, so I assume the optimizations are algorithmic and not CPU-specific.
Large Pages also improve PPMD speed with big "mem" settings.
New version 20.01 shows CPU microcode revision
(->1720): But it has the bug in code. It must show(17->20). I'll fix it in next version.It reads the registry:
Some microcode revisions in Intel CPUs affected PPMD speed in 7-Zip 20.00 version.
Last edit: Igor Pavlov 2020-08-07
I'm not sure if this is a new v20.01 issue, but adding NOTHING to a big archive takes forever... (instead of the expected time for checking and displaying "Add new data to archive: 0 files, 0 bytes")

Last edit: Peter 2020-08-07
100 MB/s only.
Try to copy same archive to another folder to compare time results.
Please, specify the command line (or parameters window) you are using. Can all of the added files be read? Try calculating their CRC32.
@Igor Pavlov:
Copy the BID-Archiv.7z to another folder on the same SSD drive or to a folder on another SSD drive?
@Shell:
CMD: 7z.exe u -mx=9 -y F:\Backup\BID-Backup\BID-Archiv.7z D:\BID\* -ms=off
All files can be read, yes.
How can CRC32 help?
Last edit: Peter 2020-08-07
Use same folders in copy operation as in your
updatecommand of 7-Zip.40 minutes of data copying is slow.
So we must find the reason of that speed.
You can use smaller archives and files (30 GB). It must be larger than RAM size.
An it's better to create another thread for that problem.
@Igor Pavlov: Can you please move this speed issue to another thread? (I don't have the necessary rights).
A robocopy for this 106GB file takes 26 minutes and 20 seconds.
If the smaller archive files must be larger then RAM size, they have to be bigger then my actual 64B RAM .-)
Just to understand the update process:
An update of this 7z archive needs only some minutes to check that there are 0 files and 0 bytes to change and then additional 40 minutes to complete this "do nothing" operation?
So it's two different problems:
1) Slow data copy operation in your system
2) 7-Zip always copies data from old version of archive to new version of archive. It's default action for any update operation.
I'll look second problem later to optimize the code for such case, when there are no files to update.
How to add the -ssp switch parameter in 7-zip GUI?
no way now.
Why?
Any such change in GUI requires additional field in restricted window space.
Also it can require transation for all supported languages.
So it's not so simple to add such small changes to GUI.