Use portable CRC32C from google/crc32c.
Benchmark results below. More results at
354d61ef97
.
New, MacBookPro13,3 with Core i7 6920HQ:
LevelDB: version 1.20
Keys: 16 bytes each
Values: 100 bytes each (50 bytes after compression)
Entries: 1000000
RawSize: 110.6 MB (estimated)
FileSize: 62.9 MB (estimated)
WARNING: Snappy compression is not enabled
------------------------------------------------
fillseq : 2.952 micros/op; 37.5 MB/s
fillsync : 43.932 micros/op; 2.5 MB/s (1000 ops)
fillrandom : 3.856 micros/op; 28.7 MB/s
overwrite : 4.053 micros/op; 27.3 MB/s
readrandom : 4.234 micros/op; (1000000 of 1000000 found)
readrandom : 3.923 micros/op; (1000000 of 1000000 found)
readseq : 0.201 micros/op; 550.8 MB/s
readreverse : 0.356 micros/op; 310.6 MB/s
compact : 436800.000 micros/op;
readrandom : 2.375 micros/op; (1000000 of 1000000 found)
readseq : 0.151 micros/op; 734.3 MB/s
readreverse : 0.298 micros/op; 370.7 MB/s
fill100K : 554.075 micros/op; 172.1 MB/s (1000 ops)
crc32c : 1.393 micros/op; 2805.0 MB/s (4K per op)
snappycomp : 3902.000 micros/op; (snappy failure)
snappyuncomp : 3821.000 micros/op; (snappy failure)
acquireload : 13.088 micros/op; (each op is 1000 loads)
Baseline, MacBookPro13,3 with Core i7 6920HQ:
LevelDB: version 1.20
Keys: 16 bytes each
Values: 100 bytes each (50 bytes after compression)
Entries: 1000000
RawSize: 110.6 MB (estimated)
FileSize: 62.9 MB (estimated)
WARNING: Snappy compression is not enabled
------------------------------------------------
fillseq : 3.000 micros/op; 36.9 MB/s
fillsync : 46.721 micros/op; 2.4 MB/s (1000 ops)
fillrandom : 3.922 micros/op; 28.2 MB/s
overwrite : 4.080 micros/op; 27.1 MB/s
readrandom : 4.409 micros/op; (1000000 of 1000000 found)
readrandom : 3.895 micros/op; (1000000 of 1000000 found)
readseq : 0.190 micros/op; 582.4 MB/s
readreverse : 0.413 micros/op; 267.6 MB/s
compact : 441076.000 micros/op;
readrandom : 2.308 micros/op; (1000000 of 1000000 found)
readseq : 0.170 micros/op; 651.2 MB/s
readreverse : 0.302 micros/op; 366.2 MB/s
fill100K : 614.289 micros/op; 155.3 MB/s (1000 ops)
crc32c : 3.547 micros/op; 1101.2 MB/s (4K per op)
snappycomp : 3393.000 micros/op; (snappy failure)
snappyuncomp : 3171.000 micros/op; (snappy failure)
acquireload : 12.761 micros/op; (each op is 1000 loads)
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=170100372