diff options
author | Steven Normore <snormore@gmail.com> | 2014-04-11 13:55:14 +0000 |
---|---|---|
committer | Ben Johnson <benbjohnson@yahoo.com> | 2014-04-18 21:44:27 -0500 |
commit | fdde1bcb0624ce5232bf0f3226a2f47fd5a24cb3 (patch) | |
tree | b2c9af8e1ed0076c8e0536dcc2f9a53aa811a5e0 /cmd/bolt/bench.go | |
parent | initial bench and generate command structure (diff) | |
download | dedo-fdde1bcb0624ce5232bf0f3226a2f47fd5a24cb3.tar.gz dedo-fdde1bcb0624ce5232bf0f3226a2f47fd5a24cb3.tar.xz |
moar bench package
Diffstat (limited to 'cmd/bolt/bench.go')
-rw-r--r-- | cmd/bolt/bench.go | 70 |
1 files changed, 35 insertions, 35 deletions
diff --git a/cmd/bolt/bench.go b/cmd/bolt/bench.go index c35e747..28cbbc3 100644 --- a/cmd/bolt/bench.go +++ b/cmd/bolt/bench.go @@ -1,43 +1,43 @@ package main import ( - "os" + "testing" "github.com/boltdb/bolt" ) -// Run benchmarks on a given dataset. -func Bench() { - path := "bench" - if _, err := os.Stat(path); os.IsNotExist(err) { - fatal(err) - return - } - - db, err := bolt.Open(path, 0600) - if err != nil { - fatal(err) - return - } - defer db.Close() - - bucketName := "widgets" - key := "key1" - value := "value1" - - err = db.Update(func(tx *bolt.Tx) error { - // Find bucket. - b := tx.Bucket(bucketName) - if b == nil { - fatalf("bucket not found: %s", bucketName) - return nil - } - - // Set value for a given key. - return b.Put([]byte(key), []byte(value)) - }) - if err != nil { - fatal(err) - return - } +// Import converts an exported database dump into a new database. +// parallelism: integer representing number of concurrent reads/writes +// readWriteMode: 'read' or 'write' +// traversalPattern: 'sequentrial' or 'random' +func Bench(inputPath string, readWriteMode string, traversalPattern string, parallelism int) { + + // cursor/sequential reads + // random reads + + // sequential writes + // random writes + + // reading from many buckets + // writing to many buckets + + // read from many paths + // writing to many paths + + // bucket size/messages + // bucket depth + + // concurrency + + // chart/graph + + // profile + + // benchmarks for getting all keys + + b := bolt.NewBenchmark(inputPath, readWriteMode, traversalPattern, parallelism) + + result := testing.Benchmark(b.Run) + + println(result) } |