package hashmap import ( "bytes" "encoding/gob" "io/ioutil" "log" "testing" ) func loadTestData() []int { log.SetFlags(log.Lshortfile) data, err := ioutil.ReadFile("../l.log") if err != nil { log.Println(err) } var l []int decoder := gob.NewDecoder(bytes.NewReader(data)) decoder.Decode(&l) return l } func TestCount(t *testing.T) { hm := New() // for i := 0; i < 100000; i++ { // hm.Put(i, i) // } for i := 0; i < 100000; i++ { hm.Put(i, i) } // t.Error(hm.Get(4)) } var executeCount = 5 var compareSize = 100000 func BenchmarkPut(b *testing.B) { b.StopTimer() l := loadTestData() hm := New() b.N = len(l) * executeCount // for i := 0; i < len(l); i++ { // v := l[i] // hm.Put(v, v) // } b.StartTimer() for c := 0; c < executeCount; c++ { for i := 0; i < len(l); i++ { v := l[i] hm.Put(v, v) } } //b.Log(len(hm.table), hm.size) //PrintMemUsage() } func BenchmarkGoPut(b *testing.B) { l := loadTestData() hm := make(map[int]int) b.N = len(l) * executeCount for c := 0; c < executeCount; c++ { for i := 0; i < len(l); i++ { v := l[i] hm[v] = v } } //b.Log(len(m)) //PrintMemUsage() } // func BenchmarkGet(b *testing.B) { // b.StopTimer() // l := loadTestData() // hm := New() // b.N = len(l) * executeCount // for i := 0; i < len(l); i++ { // v := l[i] // hm.Put(v, v) // } // b.StartTimer() // for i := 0; i < b.N; i++ { // hm.Get(i) // } // //b.Log(len(hm.table), hm.size) // //PrintMemUsage() // } // func BenchmarkGoGet(b *testing.B) { // b.StopTimer() // l := loadTestData() // hm := make(map[int]int) // b.N = len(l) * executeCount // for i := 0; i < len(l); i++ { // v := l[i] // hm[v] = v // } // b.StartTimer() // for i := 0; i < b.N; i++ { // if _, ok := hm[i]; !ok { // } // } // //b.Log(len(m)) // //PrintMemUsage() // }