mirror of
https://github.com/gohugoio/hugo.git
synced 2024-12-27 21:10:51 +00:00
parser: Add benchmarks for stringifyYAMLMapKeys
```bash BenchmarkStringifyMapKeysStringsOnlyInterfaceMaps-4 500000 3269 ns/op 1080 B/op 16 allocs/op BenchmarkStringifyMapKeysStringsOnlyStringMaps-4 300000000 4.79 ns/op 0 B/op 0 allocs/op BenchmarkStringifyMapKeysIntegers-4 500000 2707 ns/op 1080 B/op 16 allocs/op ```
This commit is contained in:
parent
1fa2417777
commit
51213e0be1
1 changed files with 68 additions and 1 deletions
|
@ -323,7 +323,7 @@ func TestRemoveTOMLIdentifier(t *testing.T) {
|
|||
|
||||
func TestStringifyYAMLMapKeys(t *testing.T) {
|
||||
cases := []struct {
|
||||
input map[interface{}]interface{}
|
||||
input interface{}
|
||||
want map[string]interface{}
|
||||
}{
|
||||
{
|
||||
|
@ -346,6 +346,10 @@ func TestStringifyYAMLMapKeys(t *testing.T) {
|
|||
map[interface{}]interface{}{"a": map[interface{}]interface{}{"b": 1}},
|
||||
map[string]interface{}{"a": map[string]interface{}{"b": 1}},
|
||||
},
|
||||
{
|
||||
map[string]interface{}{"a": map[string]interface{}{"b": 1}},
|
||||
map[string]interface{}{"a": map[string]interface{}{"b": 1}},
|
||||
},
|
||||
}
|
||||
|
||||
for i, c := range cases {
|
||||
|
@ -365,6 +369,69 @@ func BenchmarkFrontmatterTags(b *testing.B) {
|
|||
}
|
||||
}
|
||||
|
||||
func BenchmarkStringifyMapKeysStringsOnlyInterfaceMaps(b *testing.B) {
|
||||
maps := make([]map[interface{}]interface{}, b.N)
|
||||
for i := 0; i < b.N; i++ {
|
||||
maps[i] = map[interface{}]interface{}{
|
||||
"a": map[interface{}]interface{}{
|
||||
"b": 32,
|
||||
"c": 43,
|
||||
"d": map[interface{}]interface{}{
|
||||
"b": 32,
|
||||
"c": 43,
|
||||
},
|
||||
},
|
||||
"b": []interface{}{"a", "b"},
|
||||
"c": "d",
|
||||
}
|
||||
}
|
||||
b.ResetTimer()
|
||||
for i := 0; i < b.N; i++ {
|
||||
stringifyYAMLMapKeys(maps[i])
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkStringifyMapKeysStringsOnlyStringMaps(b *testing.B) {
|
||||
m := map[string]interface{}{
|
||||
"a": map[string]interface{}{
|
||||
"b": 32,
|
||||
"c": 43,
|
||||
"d": map[string]interface{}{
|
||||
"b": 32,
|
||||
"c": 43,
|
||||
},
|
||||
},
|
||||
"b": []interface{}{"a", "b"},
|
||||
"c": "d",
|
||||
}
|
||||
|
||||
b.ResetTimer()
|
||||
for i := 0; i < b.N; i++ {
|
||||
stringifyYAMLMapKeys(m)
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkStringifyMapKeysIntegers(b *testing.B) {
|
||||
maps := make([]map[interface{}]interface{}, b.N)
|
||||
for i := 0; i < b.N; i++ {
|
||||
maps[i] = map[interface{}]interface{}{
|
||||
1: map[interface{}]interface{}{
|
||||
4: 32,
|
||||
5: 43,
|
||||
6: map[interface{}]interface{}{
|
||||
7: 32,
|
||||
8: 43,
|
||||
},
|
||||
},
|
||||
2: []interface{}{"a", "b"},
|
||||
3: "d",
|
||||
}
|
||||
}
|
||||
b.ResetTimer()
|
||||
for i := 0; i < b.N; i++ {
|
||||
stringifyYAMLMapKeys(maps[i])
|
||||
}
|
||||
}
|
||||
func doBenchmarkFrontmatter(b *testing.B, fileformat string, numTags int) {
|
||||
yamlTemplate := `---
|
||||
name: "Tags"
|
||||
|
|
Loading…
Reference in a new issue