From 6f8b0dc7ef5f0de4930c5bca5ab57b90c1462ddf Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Fri, 17 Jan 2014 15:18:11 +0800 Subject: [PATCH] add delete bench --- store/store_bench_test.go | 52 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/store/store_bench_test.go b/store/store_bench_test.go index 955100eac..4a520ced2 100644 --- a/store/store_bench_test.go +++ b/store/store_bench_test.go @@ -48,6 +48,57 @@ func BenchmarkStoreSetWithJson4096Bytes(b *testing.B) { benchStoreSet(b, 4096, json.Marshal) } +func BenchmarkStoreDelete(b *testing.B) { + b.StopTimer() + + s := newStore() + kvs, _ := generateNRandomKV(b.N, 128) + + memStats := new(runtime.MemStats) + runtime.GC() + runtime.ReadMemStats(memStats) + + for i := 0; i < b.N; i++ { + _, err := s.Set(kvs[i][0], false, kvs[i][1], Permanent) + if err != nil { + panic(err) + } + } + + setMemStats := new(runtime.MemStats) + runtime.GC() + runtime.ReadMemStats(setMemStats) + + b.StartTimer() + + for i := range kvs { + s.Delete(kvs[i][0], false, false) + } + + b.StopTimer() + + // clean up + e, err := s.Get("/", false, false) + if err != nil { + panic(err) + } + + for _, n := range e.Node.Nodes { + _, err := s.Delete(n.Key, true, true) + if err != nil { + panic(err) + } + } + s.WatcherHub.EventHistory = nil + + deleteMemStats := new(runtime.MemStats) + runtime.GC() + runtime.ReadMemStats(deleteMemStats) + + fmt.Printf("\nBefore set Alloc: %v; After set Alloc: %v, After delete Alloc: %v\n", + memStats.Alloc/1000, setMemStats.Alloc/1000, deleteMemStats.Alloc/1000) +} + func benchStoreSet(b *testing.B, valueSize int, process func(interface{}) ([]byte, error)) { s := newStore() b.StopTimer() @@ -68,6 +119,7 @@ func benchStoreSet(b *testing.B, valueSize int, process func(interface{}) ([]byt } } + kvs = nil b.StopTimer() memStats := new(runtime.MemStats) runtime.GC()