pure go kv database benchmark

ref: https://github.com/recoilme/pogreb-bench

  • pogred
  • pudge
  • buntdb

Usage

# Clone this repo and install dependencies
go run .

Result

Read: pogreb > buntdb > pudge Write: buntdb > pudge > pogreb Disk usage: pudge > buntdb > pogreb

Now test 10000 count:
pudge: Total usage: 103ms, Init usage: 0ms, Read usage: 16ms, Write usage: 87ms, File size: 0M
buntdb: Total usage: 39ms, Init usage: 1ms, Read usage: 4ms, Write usage: 34ms, File size: 0M
pogreb: Total usage: 67ms, Init usage: 1ms, Read usage: 2ms, Write usage: 64ms, File size: 0M
Now test 100000 count:
pudge: Total usage: 676ms, Init usage: 0ms, Read usage: 151ms, Write usage: 525ms, File size: 6M
buntdb: Total usage: 356ms, Init usage: 0ms, Read usage: 46ms, Write usage: 310ms, File size: 7M
pogreb: Total usage: 601ms, Init usage: 1ms, Read usage: 22ms, Write usage: 578ms, File size: 8M
Now test 1000000 count:
pudge: Total usage: 7017ms, Init usage: 0ms, Read usage: 1612ms, Write usage: 5405ms, File size: 64M
buntdb: Total usage: 5472ms, Init usage: 0ms, Read usage: 1410ms, Write usage: 4062ms, File size: 76M
pogreb: Total usage: 6581ms, Init usage: 0ms, Read usage: 390ms, Write usage: 6191ms, File size: 81M
Now test 5000000 count:
pudge: Total usage: 46345ms, Init usage: 0ms, Read usage: 14259ms, Write usage: 32086ms, File size: 324M
buntdb: Total usage: 36822ms, Init usage: 0ms, Read usage: 9942ms, Write usage: 26880ms, File size: 360M
pogreb: Total usage: 37205ms, Init usage: 1ms, Read usage: 2331ms, Write usage: 34873ms, File size: 407M

1000op/s on 1m(large is greater):

db read write
pudge 620 185
buntdb 709 246
pogreb 2564 161

1000op/s on 5m(large is greater):

db read write
pudge 350 156
buntdb 502 186
pogreb 2145 143

GitHub

View Github