mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-29 04:22:06 -05: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) {
|
func TestStringifyYAMLMapKeys(t *testing.T) {
|
||||||
cases := []struct {
|
cases := []struct {
|
||||||
input map[interface{}]interface{}
|
input interface{}
|
||||||
want map[string]interface{}
|
want map[string]interface{}
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
|
@ -346,6 +346,10 @@ func TestStringifyYAMLMapKeys(t *testing.T) {
|
||||||
map[interface{}]interface{}{"a": map[interface{}]interface{}{"b": 1}},
|
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}},
|
||||||
|
map[string]interface{}{"a": map[string]interface{}{"b": 1}},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for i, c := range cases {
|
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) {
|
func doBenchmarkFrontmatter(b *testing.B, fileformat string, numTags int) {
|
||||||
yamlTemplate := `---
|
yamlTemplate := `---
|
||||||
name: "Tags"
|
name: "Tags"
|
||||||
|
|
Loading…
Reference in a new issue