OS: Windows XP SP2
Memory: 2048MB physical, 2048MB paging
CPU: Intel Pentium D 805
Sound: Realtek ALC888
Video: ATI Radeon HD 4850
When creating 7z archive with LZMA compression with 7-Zip 9.18 or later, setting memory to more than 128MB causes error message 'The parameter is incorrect' to appear, if the total size of input files is over 128MiB. However, the dictionary size limit for LZMA compression in 7z file format is 4GB, but the error message can be triggered by specifying dictionary size to as little as 129MB. Unlike creating 7z PPMd (see bug 3097912), 7-Zip can use more than 1196MB memory when making 7z LZMA archive without errors. Under the tested system, Microsoft Management Console reported 7-Zip used 1426.6MB physical and 0.15MB virtual memory when creating 7z archive with LZMA compression using 128MB dictionary and bt4 match finder. Even when setting the dictionary to 129MB, 7-Zip would only use 10.5MB more memory, so the 155.4MB of free physical memory and over 2000MB free virtual memory in the tested system should be more than sufficient to prevent memory depletion. As for memory fragmentation, the memory was defragmented with PowerStrip before running test, so there was no issue on memory allocation.
It's not BUG.
Next real dictioanry size after 128 MB is 192 MB that requires more than 2 GB of RAM.
Most 32-bit systems can't allocate such blocks. It's virtual memory fragmentation problem. And PowerStrip can't help there.
So 7-Zip limits dictionary to 128 MB for 32-bit version.
I'll add sentence about 128 MB limit to Help file.
Instead of rejecting outright by some arbitrary limits, 7-Zip should have at least tests the limit on user's machine before claiming it is impossible. If there is an issue of virtual memory fragmentation, 7-Zip should find a work around to stitch up the fragments instead of limit itself to single-block allocation.
Last edit: quanta 2014-08-21