ref: 2342df4d2dcc2f253865e317c1026c5cb673fa54
parent: 828427ef522e8c259eea520e76a1e3655b801b13
author: Bjørn Erik Pedersen <[email protected]>
date: Tue May 30 14:10:48 EDT 2017
hugolib: Add TOML/YAML switch to benchmark
--- a/hugolib/site_benchmark_test.go
+++ b/hugolib/site_benchmark_test.go
@@ -24,6 +24,7 @@
)
type siteBuildingBenchmarkConfig struct {
+ Frontmatter string
NumPages int
RootSections int
Render bool
@@ -32,22 +33,25 @@
}
func (s siteBuildingBenchmarkConfig) String() string {
- return fmt.Sprintf("num_root_sections=%d|num_pages=%d|tags_per_page=%d|shortcodes=%t|render=%t", s.RootSections, s.NumPages, s.TagsPerPage, s.Shortcodes, s.Render)
+ return fmt.Sprintf("frontmatter=%s|num_root_sections=%d|num_pages=%d|tags_per_page=%d|shortcodes=%t|render=%t", s.Frontmatter, s.RootSections, s.NumPages, s.TagsPerPage, s.Shortcodes, s.Render)
}
func BenchmarkSiteBuilding(b *testing.B) {
var conf siteBuildingBenchmarkConfig
- for _, rootSections := range []int{1, 5} {
- conf.RootSections = rootSections
- for _, tagsPerPage := range []int{0, 1, 5, 20} {
- conf.TagsPerPage = tagsPerPage
- for _, numPages := range []int{10, 100, 500, 1000, 5000} {
- conf.NumPages = numPages
- for _, render := range []bool{false, true} {
- conf.Render = render
- for _, shortcodes := range []bool{false, true} {
- conf.Shortcodes = shortcodes
- doBenchMarkSiteBuilding(conf, b)
+ for _, frontmatter := range []string{"YAML", "TOML"} {
+ conf.Frontmatter = frontmatter
+ for _, rootSections := range []int{1, 5} {
+ conf.RootSections = rootSections
+ for _, tagsPerPage := range []int{0, 1, 5, 20} {
+ conf.TagsPerPage = tagsPerPage
+ for _, numPages := range []int{10, 100, 500, 1000, 5000} {
+ conf.NumPages = numPages
+ for _, render := range []bool{false, true} {
+ conf.Render = render
+ for _, shortcodes := range []bool{false, true} {
+ conf.Shortcodes = shortcodes
+ doBenchMarkSiteBuilding(conf, b)
+ }
}
}
}
@@ -108,7 +112,7 @@
`
- pageTemplate := `+++
+ pageTemplateTOML := `+++
title = "%s"
tags = %s
+++
@@ -116,6 +120,15 @@
`
+ pageTemplateYAML := `---
+title: "%s"
+tags:
+%s
+---
+%s
+
+`
+
siteConfig := `
baseURL = "http://example.com/blog"
@@ -129,6 +142,7 @@
var (
contentPagesContent [3]string
tags = make([]string, cfg.TagsPerPage)
+ pageTemplate string
)
tagOffset := rand.Intn(10)
@@ -137,9 +151,20 @@
tags[i] = fmt.Sprintf("Hugo %d", i+tagOffset)
}
- tagsStr := "[]"
- if cfg.TagsPerPage > 0 {
- tagsStr = strings.Replace(fmt.Sprintf("%q", tags[0:cfg.TagsPerPage]), " ", ", ", -1)
+ var tagsStr string
+
+ if cfg.Frontmatter == "TOML" {
+ pageTemplate = pageTemplateTOML
+ tagsStr = "[]"
+ if cfg.TagsPerPage > 0 {
+ tagsStr = strings.Replace(fmt.Sprintf("%q", tags[0:cfg.TagsPerPage]), " ", ", ", -1)
+ }
+ } else {
+ // YAML
+ pageTemplate = pageTemplateYAML
+ for _, tag := range tags {
+ tagsStr += "\n- " + tag
+ }
}
if cfg.Shortcodes {