test(store_bench_test.go) add watch bench

release-0.4
Xiang Li 2014-01-21 06:51:40 -05:00
parent 451e874696
commit 17c8f6d2e8
1 changed files with 78 additions and 0 deletions

View File

@ -99,6 +99,84 @@ func BenchmarkStoreDelete(b *testing.B) {
memStats.Alloc/1000, setMemStats.Alloc/1000, deleteMemStats.Alloc/1000)
}
func BenchmarkWatch(b *testing.B) {
b.StopTimer()
s := newStore()
kvs, _ := generateNRandomKV(b.N, 128)
b.StartTimer()
memStats := new(runtime.MemStats)
runtime.GC()
runtime.ReadMemStats(memStats)
for i := 0; i < b.N; i++ {
w, _ := s.Watch(kvs[i][0], false, false, 0)
e := newEvent("set", kvs[i][0], uint64(i+1), uint64(i+1))
s.WatcherHub.notify(e)
<-w.EventChan
s.CurrentIndex++
}
s.WatcherHub.EventHistory = nil
afterMemStats := new(runtime.MemStats)
runtime.GC()
runtime.ReadMemStats(afterMemStats)
fmt.Printf("\nBefore Alloc: %v; After Alloc: %v\n",
memStats.Alloc/1000, afterMemStats.Alloc/1000)
}
func BenchmarkWatchWithSet(b *testing.B) {
b.StopTimer()
s := newStore()
kvs, _ := generateNRandomKV(b.N, 128)
b.StartTimer()
for i := 0; i < b.N; i++ {
w, _ := s.Watch(kvs[i][0], false, false, 0)
s.Set(kvs[i][0], false, "test", Permanent)
<-w.EventChan
}
}
func BenchmarkWatchWithSetBatch(b *testing.B) {
b.StopTimer()
s := newStore()
kvs, _ := generateNRandomKV(b.N, 128)
b.StartTimer()
watchers := make([]*Watcher, b.N)
for i := 0; i < b.N; i++ {
watchers[i], _ = s.Watch(kvs[i][0], false, false, 0)
}
for i := 0; i < b.N; i++ {
s.Set(kvs[i][0], false, "test", Permanent)
}
for i := 0; i < b.N; i++ {
<-watchers[i].EventChan
}
}
func BenchmarkWatchOneKey(b *testing.B) {
s := newStore()
watchers := make([]*Watcher, b.N)
for i := 0; i < b.N; i++ {
watchers[i], _ = s.Watch("/foo", false, false, 0)
}
s.Set("/foo", false, "", Permanent)
for i := 0; i < b.N; i++ {
<-watchers[i].EventChan
}
}
func benchStoreSet(b *testing.B, valueSize int, process func(interface{}) ([]byte, error)) {
s := newStore()
b.StopTimer()