Skip to content

Commit

Permalink
s2: Improve small block compression speed w/o asm (#1048)
Browse files Browse the repository at this point in the history
* s2: Improve small block compression speed w/o asm

Test with `-tags=noasm`

Uses uint16 hash table, which reduced the zero cost by a lot.

```
benchmark                                                                 old MB/s      new MB/s      speedup
BenchmarkEncodeSnappyBlockParallel/12-txt1_128b/s2-snappy-16              2518.04       4430.70       1.76x
BenchmarkEncodeSnappyBlockParallel/12-txt1_128b/s2-snappy-better-16       4.59          1852.29       403.55x
BenchmarkEncodeSnappyBlockParallel/12-txt1_128b/snappy-noasm-16           3362.43       3561.17       1.06x
BenchmarkEncodeSnappyBlockParallel/13-txt1_1000b/s2-snappy-16             8053.34       9026.64       1.12x
BenchmarkEncodeSnappyBlockParallel/13-txt1_1000b/s2-snappy-better-16      34.60         3804.57       109.96x
BenchmarkEncodeSnappyBlockParallel/13-txt1_1000b/snappy-noasm-16          4901.85       4904.47       1.00x
BenchmarkEncodeSnappyBlockParallel/14-txt1_10000b/s2-snappy-16            9349.04       9544.38       1.02x
BenchmarkEncodeSnappyBlockParallel/14-txt1_10000b/s2-snappy-better-16     359.32        3795.91       10.56x
BenchmarkEncodeSnappyBlockParallel/14-txt1_10000b/snappy-noasm-16         5361.99       5535.82       1.03x
BenchmarkEncodeSnappyBlockParallel/15-txt1_20000b/s2-snappy-16            8852.18       9300.86       1.05x
BenchmarkEncodeSnappyBlockParallel/15-txt1_20000b/s2-snappy-better-16     594.96        3226.26       5.42x
BenchmarkEncodeSnappyBlockParallel/15-txt1_20000b/snappy-noasm-16         3418.03       3435.88       1.01x
```
```
  • Loading branch information
klauspost authored Jan 23, 2025
1 parent b05b993 commit c8a8470
Show file tree
Hide file tree
Showing 4 changed files with 841 additions and 9 deletions.
Loading

0 comments on commit c8a8470

Please sign in to comment.