My site build by Hugo have about 1600 posts, hugo server very slow
Need about 8 mins to built
Whether beacuse posts too many?
How make Hugo build more quickly?
Hugo version is 0.62.2
Thanks
My site build by Hugo have about 1600 posts, hugo server very slow
Need about 8 mins to built
Whether beacuse posts too many?
How make Hugo build more quickly?
Hugo version is 0.62.2
Thanks
Read the build performance docs; your theme is doing something that doesn’t scale well. Without a copy of the repo, it’s hard to say what, but you probably have a very expensive partial that gets loaded on every page, which can be found with the --templateMetrics
option, and likely sped up by using partialCached
.
For example, my recipe site has a very lean theme, and builds over 18,000 pages in 18 seconds on a 12-inch MacBook. My blog theme is a lot more complicated, but careful use of partialCached
lets it build 5,000+ pages in 20 seconds.
-j
Template Metrics:
cumulative average maximum
duration duration duration count template
---------- -------- -------- ----- --------
59m18.008467032s 391.377017ms 867.537739ms 9091 _default/tag.html
18m37.624437756s 1.424335ms 174.518125ms 784664 _default/rss.xml
43.361296251s 25.357483ms 162.020332ms 1710 _default/single.html
41.696158265s 3.828496ms 120.477366ms 10891 partials/sidebar.html
21.97402185s 2.017631ms 91.443604ms 10891 partials/_widgets/recent_posts.html
17.564270709s 1.612732ms 102.02018ms 10891 partials/_widgets/category.html
9.775841656s 897.607µs 56.706936ms 10891 partials/header.html
8.14678649s 748.029µs 94.097839ms 10891 partials/head.html
7.955968046s 4.652612ms 129.357721ms 1710 partials/article.html
7.411152815s 130.020224ms 226.438422ms 57 index.html
7.145596414s 257.276µs 74.053796ms 27774 partials/card-post.html
6.949008149s 6.949008149s 6.949008149s 1 _default/list.searchindex.json
4.610428181s 2.696156ms 125.093995ms 1710 partials/related.html
4.393994301s 4.393994301s 4.393994301s 1 _default/tag.terms.html
3.618406424s 332.238µs 45.253596ms 10891 partials/script.html
2.992701514s 52.503535ms 125.020011ms 57 partials/post/stiky.html
2.609665929s 239.616µs 99.72264ms 10891 partials/footer.html
2.589817147s 757.035µs 52.69412ms 3421 partials/post/wc.html
1.324610697s 121.624µs 99.669698ms 10891 partials/social.html
727.861966ms 31.646172ms 140.784795ms 23 _default/category.html
563.362425ms 51.727µs 85.409156ms 10891 partials/_widgets/board.html
548.829515ms 50.392µs 45.696666ms 10891 partials/search.html
548.420823ms 64.573µs 41.88207ms 8493 partials/item-post.html
521.679181ms 57.17µs 71.440983ms 9125 _internal/alias.html
479.59484ms 280.3µs 31.091737ms 1711 partials/post/tag.html
420.651968ms 420.651968ms 420.651968ms 1 _default/category.terms.html
415.537993ms 415.537993ms 415.537993ms 1 _default/sitemap.xml
382.562636ms 223.72µs 19.281295ms 1710 partials/post/nav.html
372.705603ms 34.221µs 21.338629ms 10891 partials/_script/analytics.html
347.774519ms 101.658µs 30.0802ms 3421 partials/post/date.html
337.981089ms 48.283012ms 249.750304ms 7 _default/list.html
337.114977ms 98.542µs 23.28851ms 3421 partials/post/category.html
317.465365ms 185.543µs 25.176684ms 1711 partials/post/copyright.html
207.020335ms 120.993µs 44.221691ms 1711 partials/post/pv.html
181.047131ms 107.83µs 45.034704ms 1679 partials/_script/comment.html
142.343741ms 83.241µs 23.623213ms 1710 partials/post/title.html
100.784335ms 58.938µs 14.709665ms 1710 partials/_script/pv.html
88.224797ms 51.563µs 18.362587ms 1711 partials/post/comment.html
80.477974ms 47.063µs 14.785213ms 1710 partials/post/title-post.html
58.459154ms 34.186µs 5.518728ms 1710 partials/sidebar-toc.html
30.47743ms 2.798µs 17.27827ms 10891 partials/_script/fancybox.html
21.371758ms 12.49µs 2.980391ms 1711 partials/post/donate.html
15.075657ms 15.075657ms 15.075657ms 1 404.html
9.407409ms 165.042µs 3.401523ms 57 partials/pagination.html
1.959751ms 1.146µs 163.981µs 1710 partials/post/gallery.html
3.629µs 3.629µs 3.629µs 1 robots.txt
| ZH
+------------------+--------+
Pages | 19961
Paginator pages | 775596
Non-page files | 0
Static files | 22
Processed images | 0
Aliases | 9125
Sitemaps | 1
Cleaned | 0
Total in 486567 ms
Please help
You build a lot of pagination … And it seems to be tag related. How does your tag templates look like?
layouts/partials/post/tag.html
{{- with .Params.tags}}
<span class="article-tag">
<i class="icon icon-tags"></i>
{{- range . }}
<a class="article-tag-link" href="{{ "tags" | relLangURL }}/{{ . | urlize }}/"> {{ . }} </a>
{{- end}}
</span>
{{- end }}
What happens if you eliminate the RSS feeds for each taxonomy tag? It’s unlikely that there’s a big demand for subscribing to each tag. From my config.toml
:
[outputs]
home = ["HTML","RSS"]
page = ["HTML"]
section = ["HTML"]
taxonomy = ["HTML"]
taxonomyTerm = ["HTML"]
You could also try disabling pagination on specific templates by adding a comment at the top. You’ve got hundreds of thousands of paginator pages that I don’t think you want:
<!--{{ .Paginator 9999 }}-->
Given the small number of actual posts, I think the root cause is that you have a very large list of tags with several of them applied to each post (hence the 0.4-second average time for _default/tag.html
). Having a large number of distinct terms in a taxonomy can significantly increase build time, although Hugo has gotten a lot faster since I last tested it with 100,000+ posts.
-j
You shared the contents of layouts/partials/post/tag.html
, but that’s not the layout that’s killing you:
cumulative average maximum
duration duration duration count template
---------- -------- -------- ----- --------
59m18.008467032s 391.377017ms 867.537739ms 9091 _default/tag.html
479.59484ms 280.3µs 31.091737ms 1711 partials/post/tag.html
We would need to see the contents of layouts/_default/tag.html
.