Skip to content

Commit 4e957ce

Browse files
author
Mario Macias
authored
Improving performance of generic map clone (#326)
1 parent a1e9a20 commit 4e957ce

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

Diff for: pkg/config/generic_map.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ type GenericMap map[string]interface{}
2121

2222
// Copy will create a flat copy of GenericMap
2323
func (m GenericMap) Copy() GenericMap {
24-
result := GenericMap{}
24+
result := make(GenericMap, len(m))
2525

2626
for k, v := range m {
2727
result[k] = v

Diff for: pkg/config/generic_map_test.go

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package config
2+
3+
import (
4+
"fmt"
5+
"testing"
6+
)
7+
8+
func BenchmarkGenericMap_Copy(b *testing.B) {
9+
m := GenericMap{}
10+
for i := 0; i < 20; i++ {
11+
m[fmt.Sprintf("key-%d", i)] = fmt.Sprintf("value-%d", i)
12+
}
13+
14+
for i := 0; i < b.N; i++ {
15+
_ = m.Copy()
16+
}
17+
}

0 commit comments

Comments
 (0)