github.com/gogf/gf/v2@v2.7.4/container/gmap/gmap_z_bench_maps_test.go (about) 1 // Copyright GoFrame Author(https://goframe.org). All Rights Reserved. 2 // 3 // This Source Code Form is subject to the terms of the MIT License. 4 // If a copy of the MIT was not distributed with gm file, 5 // You can obtain one at https://github.com/gogf/gf. 6 7 // go test *.go -bench=".*" -benchmem 8 9 package gmap_test 10 11 import ( 12 "testing" 13 14 "github.com/gogf/gf/v2/container/gmap" 15 "github.com/gogf/gf/v2/util/gutil" 16 ) 17 18 var hashMap = gmap.New(true) 19 20 var listMap = gmap.NewListMap(true) 21 22 var treeMap = gmap.NewTreeMap(gutil.ComparatorInt, true) 23 24 func Benchmark_HashMap_Set(b *testing.B) { 25 b.RunParallel(func(pb *testing.PB) { 26 i := 0 27 for pb.Next() { 28 hashMap.Set(i, i) 29 i++ 30 } 31 }) 32 } 33 34 func Benchmark_ListMap_Set(b *testing.B) { 35 b.RunParallel(func(pb *testing.PB) { 36 i := 0 37 for pb.Next() { 38 listMap.Set(i, i) 39 i++ 40 } 41 }) 42 } 43 44 func Benchmark_TreeMap_Set(b *testing.B) { 45 b.RunParallel(func(pb *testing.PB) { 46 i := 0 47 for pb.Next() { 48 treeMap.Set(i, i) 49 i++ 50 } 51 }) 52 } 53 54 func Benchmark_HashMap_Get(b *testing.B) { 55 b.RunParallel(func(pb *testing.PB) { 56 i := 0 57 for pb.Next() { 58 hashMap.Get(i) 59 i++ 60 } 61 }) 62 } 63 64 func Benchmark_ListMap_Get(b *testing.B) { 65 b.RunParallel(func(pb *testing.PB) { 66 i := 0 67 for pb.Next() { 68 listMap.Get(i) 69 i++ 70 } 71 }) 72 } 73 74 func Benchmark_TreeMap_Get(b *testing.B) { 75 b.RunParallel(func(pb *testing.PB) { 76 i := 0 77 for pb.Next() { 78 treeMap.Get(i) 79 i++ 80 } 81 }) 82 }