-
Notifications
You must be signed in to change notification settings - Fork 329
Commit c8a8470
authored
s2: Improve small block compression speed w/o asm (#1048)
* 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
```
```1 parent b05b993 commit c8a8470Copy full SHA for c8a8470
4 files changed
+841
-9
lines changed
0 commit comments