]> git.maquefel.me Git - brevno-suite/hugo/commit
Optimize memory allocations for sites matrix vector stores
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sun, 16 Nov 2025 12:28:43 +0000 (13:28 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 17 Nov 2025 15:01:37 +0000 (16:01 +0100)
commitca4025405cc4fd1fdb3941abcf00567642e5899d
treeece99721d0fbb423d2162101e54c40733fd0e620
parent44b5f13f86119504d87b5976d79faaeb307f2254
Optimize memory allocations for sites matrix vector stores

By

* Caching common sites matrix setups (e.g. the single site in single site setups).
* Adding a fast path to IntSets.HasAnyVector for the common case of single vector input.

```
AssembleDeepSiteWithManySections/depth=3/sectionsPerLevel=2/pagesPerSection=100-10   31.62m ± 46%   30.68m ± 42%  ~ (p=0.310 n=6)

                                                                                   │ master.bench │          perfcommon.bench          │
                                                                                   │     B/op     │     B/op      vs base              │
AssembleDeepSiteWithManySections/depth=3/sectionsPerLevel=2/pagesPerSection=100-10   31.98Mi ± 0%   31.24Mi ± 0%  -2.30% (p=0.002 n=6)

                                                                                   │ master.bench │         perfcommon.bench          │
                                                                                   │  allocs/op   │  allocs/op   vs base              │
AssembleDeepSiteWithManySections/depth=3/sectionsPerLevel=2/pagesPerSection=100-10    460.9k ± 0%   419.9k ± 0%  -8.90% (p=0.002 n=6)
````
common/paths/pathparser.go
config/allconfig/allconfig.go
hugolib/content_map_page_assembler.go
hugolib/content_map_page_contentnode.go
hugolib/roles/roles.go
hugolib/sitesmatrix/dimensions.go
hugolib/sitesmatrix/vectorstores.go
hugolib/sitesmatrix/vectorstores_test.go
hugolib/versions/versions.go
langs/config.go
resources/page/pagemeta/page_frontmatter.go