]> git.ipfire.org Git - thirdparty/zstd.git/commit
faster decoding in 32-bits mode for long offsets (tentative)
authorYann Collet <cyan@fb.com>
Sun, 4 Feb 2018 07:54:10 +0000 (23:54 -0800)
committerYann Collet <cyan@fb.com>
Sun, 4 Feb 2018 09:49:31 +0000 (01:49 -0800)
commit94efb1749d5b6fd4ce19d7299c1014999bea28cd
treeeae2768fcd91a426328ac4325b77a1c460efa26b
parent1291d9d7cf82277b26f39cef34a1b6e78ba4aec8
faster decoding in 32-bits mode for long offsets (tentative)

On my laptop:
Before:
./zstd32 -b --zstd=wlog=27 silesia.tar enwik8 -S
 3#silesia.tar       : 211984896 ->  66683478 (3.179),  97.6 MB/s , 400.7 MB/s
 3#enwik8            : 100000000 ->  35643153 (2.806),  76.5 MB/s , 303.2 MB/s

After:
./zstd32 -b --zstd=wlog=27 silesia.tar enwik8 -S
 3#silesia.tar       : 211984896 ->  66683478 (3.179),  97.4 MB/s , 435.0 MB/s
 3#enwik8            : 100000000 ->  35643153 (2.806),  76.2 MB/s , 338.1 MB/s

Mileage vary, depending on file, and cpu type.
But a generic rule is : x86 benefits less from "long-offset mode" than x64,
maybe due to register pressure.
On "entropy", long-mode is _never_ a win for x86.
On my laptop though, it may, depending on file and compression level
(enwik8 benefits more from "long-mode" than silesia).
lib/decompress/zstd_decompress.c