github.com/gogf/gf/v2@v2.7.4/container/gmap/gmap_z_bench_unsafe_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 "strconv" 13 "testing" 14 15 "github.com/gogf/gf/v2/container/gmap" 16 ) 17 18 var anyAnyMapUnsafe = gmap.New() 19 20 var intIntMapUnsafe = gmap.NewIntIntMap() 21 22 var intAnyMapUnsafe = gmap.NewIntAnyMap() 23 24 var intStrMapUnsafe = gmap.NewIntStrMap() 25 26 var strIntMapUnsafe = gmap.NewStrIntMap() 27 28 var strAnyMapUnsafe = gmap.NewStrAnyMap() 29 30 var strStrMapUnsafe = gmap.NewStrStrMap() 31 32 // Writing benchmarks. 33 34 func Benchmark_Unsafe_IntIntMap_Set(b *testing.B) { 35 for i := 0; i < b.N; i++ { 36 intIntMapUnsafe.Set(i, i) 37 } 38 } 39 40 func Benchmark_Unsafe_IntAnyMap_Set(b *testing.B) { 41 for i := 0; i < b.N; i++ { 42 intAnyMapUnsafe.Set(i, i) 43 } 44 } 45 46 func Benchmark_Unsafe_IntStrMap_Set(b *testing.B) { 47 for i := 0; i < b.N; i++ { 48 intStrMapUnsafe.Set(i, strconv.Itoa(i)) 49 } 50 } 51 52 func Benchmark_Unsafe_AnyAnyMap_Set(b *testing.B) { 53 for i := 0; i < b.N; i++ { 54 anyAnyMapUnsafe.Set(i, i) 55 } 56 } 57 58 func Benchmark_Unsafe_StrIntMap_Set(b *testing.B) { 59 for i := 0; i < b.N; i++ { 60 strIntMapUnsafe.Set(strconv.Itoa(i), i) 61 } 62 } 63 64 func Benchmark_Unsafe_StrAnyMap_Set(b *testing.B) { 65 for i := 0; i < b.N; i++ { 66 strAnyMapUnsafe.Set(strconv.Itoa(i), i) 67 } 68 } 69 70 func Benchmark_Unsafe_StrStrMap_Set(b *testing.B) { 71 for i := 0; i < b.N; i++ { 72 strStrMapUnsafe.Set(strconv.Itoa(i), strconv.Itoa(i)) 73 } 74 } 75 76 // Reading benchmarks. 77 78 func Benchmark_Unsafe_IntIntMap_Get(b *testing.B) { 79 for i := 0; i < b.N; i++ { 80 intIntMapUnsafe.Get(i) 81 } 82 } 83 84 func Benchmark_Unsafe_IntAnyMap_Get(b *testing.B) { 85 for i := 0; i < b.N; i++ { 86 intAnyMapUnsafe.Get(i) 87 } 88 } 89 90 func Benchmark_Unsafe_IntStrMap_Get(b *testing.B) { 91 for i := 0; i < b.N; i++ { 92 intStrMapUnsafe.Get(i) 93 } 94 } 95 96 func Benchmark_Unsafe_AnyAnyMap_Get(b *testing.B) { 97 for i := 0; i < b.N; i++ { 98 anyAnyMapUnsafe.Get(i) 99 } 100 } 101 102 func Benchmark_Unsafe_StrIntMap_Get(b *testing.B) { 103 for i := 0; i < b.N; i++ { 104 strIntMapUnsafe.Get(strconv.Itoa(i)) 105 } 106 } 107 108 func Benchmark_Unsafe_StrAnyMap_Get(b *testing.B) { 109 for i := 0; i < b.N; i++ { 110 strAnyMapUnsafe.Get(strconv.Itoa(i)) 111 } 112 } 113 114 func Benchmark_Unsafe_StrStrMap_Get(b *testing.B) { 115 for i := 0; i < b.N; i++ { 116 strStrMapUnsafe.Get(strconv.Itoa(i)) 117 } 118 }