pierrec / lz4

LZ4 compression and decompression in pure Go
BSD 3-Clause "New" or "Revised" License
878 stars 142 forks source link

cherrypick (#172): internal/lz4block: arm64 decoder improvements #180

Closed lizthegrey closed 2 years ago

lizthegrey commented 2 years ago

Pulls in 7c0f44d5dc8a9d0db8a06ce7b2a3a6b5484a5cf4 and 24303cffaad515ae9d6613a91a0f725003b1847d

lizthegrey commented 2 years ago

No actual perf changes, but this aligns the arm64 decoder between v3 and v4.

benchmark                        old ns/op     new ns/op     delta
BenchmarkUncompress-16           17.0          17.3          +1.82%
BenchmarkUncompressPg1661-16     1816575       1817004       +0.02%
BenchmarkUncompressDigits-16     144307        143978        -0.23%
BenchmarkUncompressTwain-16      1138172       1146373       +0.72%
BenchmarkUncompressRand-16       10704         10642         -0.58%

benchmark                        old MB/s     new MB/s     speedup
BenchmarkUncompressPg1661-16     327.50       327.43       1.00x
BenchmarkUncompressDigits-16     692.99       694.57       1.00x
BenchmarkUncompressTwain-16      340.77       338.33       0.99x
BenchmarkUncompressRand-16       1530.62      1539.58      1.01x