Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
projectdiscovery
GitHub Repository: projectdiscovery/nuclei
Path: blob/dev/pkg/protocols/common/generators/maps_bench_test.go
2843 views
1
package generators
2
3
import (
4
"fmt"
5
"testing"
6
)
7
8
func BenchmarkMergeMaps(b *testing.B) {
9
map1 := map[string]interface{}{
10
"key1": "value1",
11
"key2": "value2",
12
"key3": "value3",
13
"key4": "value4",
14
"key5": "value5",
15
}
16
map2 := map[string]interface{}{
17
"key6": "value6",
18
"key7": "value7",
19
"key8": "value8",
20
"key9": "value9",
21
"key10": "value10",
22
}
23
map3 := map[string]interface{}{
24
"key11": "value11",
25
"key12": "value12",
26
"key13": "value13",
27
}
28
29
for i := 1; i <= 3; i++ {
30
b.Run(fmt.Sprintf("%d-maps", i), func(b *testing.B) {
31
b.ReportAllocs()
32
for b.Loop() {
33
switch i {
34
case 1:
35
_ = MergeMaps(map1)
36
case 2:
37
_ = MergeMaps(map1, map2)
38
case 3:
39
_ = MergeMaps(map1, map2, map3)
40
}
41
}
42
})
43
}
44
}
45
46
func BenchmarkCopyMap(b *testing.B) {
47
map1 := map[string]interface{}{
48
"key1": "value1",
49
"key2": "value2",
50
"key3": "value3",
51
"key4": "value4",
52
"key5": "value5",
53
}
54
55
for i := 1; i <= 1; i++ {
56
b.Run(fmt.Sprintf("%d-maps", i), func(b *testing.B) {
57
b.ReportAllocs()
58
for b.Loop() {
59
switch i {
60
case 1:
61
_ = CopyMap(map1)
62
}
63
}
64
})
65
}
66
}
67
68
func BenchmarkMergeMapsInto(b *testing.B) {
69
map1 := map[string]interface{}{
70
"key1": "value1",
71
"key2": "value2",
72
"key3": "value3",
73
"key4": "value4",
74
"key5": "value5",
75
}
76
map2 := map[string]interface{}{
77
"key6": "value6",
78
"key7": "value7",
79
"key8": "value8",
80
"key9": "value9",
81
"key10": "value10",
82
}
83
map3 := map[string]interface{}{
84
"key11": "value11",
85
"key12": "value12",
86
"key13": "value13",
87
}
88
map4 := map[string]interface{}{
89
"key14": "value14",
90
"key15": "value15",
91
"key16": "value16",
92
}
93
94
for i := 1; i <= 3; i++ {
95
b.Run(fmt.Sprintf("%d-maps", i), func(b *testing.B) {
96
b.ReportAllocs()
97
for b.Loop() {
98
switch i {
99
case 1:
100
MergeMapsInto(map1, map2)
101
case 2:
102
MergeMapsInto(map1, map2, map3)
103
case 3:
104
MergeMapsInto(map1, map2, map3, map4)
105
}
106
}
107
})
108
}
109
}
110
111