hugo

Fork of github.com/gohugoio/hugo with reverse pagination support

git clone git://git.shimmy1996.com/hugo.git

build-performance.md (3844B)

    1 ---
    2 title: Build Performance
    3 linktitle: Build Performance
    4 description: An overview of features used for diagnosing and improving performance issues in site builds.
    5 date: 2017-03-12
    6 publishdate: 2017-03-12
    7 lastmod: 2017-03-12
    8 keywords: [performance, build]
    9 categories: [troubleshooting]
   10 menu:
   11   docs:
   12     parent: "troubleshooting"
   13 weight: 3
   14 slug:
   15 aliases: []
   16 toc: true
   17 ---
   18 
   19 {{% note %}}
   20 The example site used below is from https://github.com/gohugoio/hugo/tree/master/examples/blog
   21 {{% /note %}}
   22 
   23 ## Template Metrics
   24 
   25 Hugo is a very fast static site generator, but it is possible to write
   26 inefficient templates.  Hugo's *template metrics* feature is extremely helpful
   27 in pinpointing which templates are executed most often and how long those
   28 executions take **in terms of CPU time**.
   29 
   30 | Metric Name         | Description |
   31 |---------------------|-------------|
   32 | cumulative duration | The cumulative time spent executing a given template. |
   33 | average duration    | The average time spent executing a given template. |
   34 | maximum duration    | The maximum time a single execution took for a given template. |
   35 | count               | The number of times a template was executed. |
   36 | template            | The template name. |
   37 
   38 ```
   39 ▶ hugo --templateMetrics
   40 Started building sites ...
   41 
   42 Built site for language en:
   43 0 draft content
   44 0 future content
   45 0 expired content
   46 2 regular pages created
   47 22 other pages created
   48 0 non-page files copied
   49 0 paginator pages created
   50 4 tags created
   51 3 categories created
   52 total in 18 ms
   53 
   54 Template Metrics:
   55 
   56      cumulative       average       maximum
   57        duration      duration      duration  count  template
   58      ----------      --------      --------  -----  --------
   59      6.419663ms     583.605µs     994.374µs     11  _internal/_default/rss.xml
   60      4.718511ms    1.572837ms    3.880742ms      3  indexes/category.html
   61      4.642666ms    2.321333ms    3.282842ms      2  posts/single.html
   62      4.364445ms     396.767µs    2.451372ms     11  partials/header.html
   63      2.346069ms     586.517µs     903.343µs      4  indexes/tag.html
   64      2.330919ms     211.901µs    2.281342ms     11  partials/header.includes.html
   65      1.238976ms     103.248µs     446.084µs     12  posts/li.html
   66        972.16µs      972.16µs      972.16µs      1  _internal/_default/sitemap.xml
   67       953.597µs     953.597µs     953.597µs      1  index.html
   68       822.263µs     822.263µs     822.263µs      1  indexes/post.html
   69       567.498µs       51.59µs     112.205µs     11  partials/navbar.html
   70        348.22µs      31.656µs      88.249µs     11  partials/meta.html
   71       346.782µs     173.391µs     276.176µs      2  posts/summary.html
   72       235.184µs       21.38µs     124.383µs     11  partials/footer.copyright.html
   73       132.003µs          12µs     117.999µs     11  partials/menu.html
   74        72.547µs       6.595µs      63.764µs     11  partials/footer.html
   75 ```
   76 
   77 {{% note %}}
   78 **A Note About Parallelism**
   79 
   80 Hugo builds pages in parallel where multiple pages are generated
   81 simultaneously. Because of this parallelism, the sum of "cumulative duration"
   82 values is usually greater than the actual time it takes to build a site.
   83 {{% /note %}}
   84 
   85 
   86 ## Cached Partials
   87 
   88 Some `partial` templates such as sidebars or menus are executed many times
   89 during a site build.  Depending on the content within the `partial` template and
   90 the desired output, the template may benefit from caching to reduce the number
   91 of executions.  The [`partialCached`][partialCached] template function provides
   92 caching capabilities for `partial` templates.
   93 
   94 {{% tip %}}
   95 Note that you can create cached variants of each `partial` by passing additional
   96 parameters to `partialCached` beyond the initial context.  See the
   97 `partialCached` documentation for more details.
   98 {{% /tip %}}
   99 
  100 
  101 [partialCached]:{{< ref "/functions/partialCached.md" >}}