mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-29 22:29:56 +02:00
hugofs: Make FileMeta a struct
This commit started out investigating a `concurrent map read write` issue, ending by replacing the map with a struct. This is easier to reason about, and it's more effective: ``` name old time/op new time/op delta SiteNew/Regular_Deep_content_tree-16 71.5ms ± 3% 69.4ms ± 5% ~ (p=0.200 n=4+4) name old alloc/op new alloc/op delta SiteNew/Regular_Deep_content_tree-16 29.7MB ± 0% 27.9MB ± 0% -5.82% (p=0.029 n=4+4) name old allocs/op new allocs/op delta SiteNew/Regular_Deep_content_tree-16 313k ± 0% 303k ± 0% -3.35% (p=0.029 n=4+4) ``` See #8749
This commit is contained in:
@@ -117,7 +117,7 @@ func (m *pageMap) newPageFromContentNode(n *contentNode, parentBucket *pagesMapB
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if n.fi.Meta().GetBool(walkIsRootFileMetaKey) {
|
||||
if n.fi.Meta().IsRootFile {
|
||||
// Make sure that the bundle/section we start walking from is always
|
||||
// rendered.
|
||||
// This is only relevant in server fast render mode.
|
||||
@@ -249,7 +249,7 @@ func (m *pageMap) newResource(fim hugofs.FileMetaInfo, owner *pageState) (resour
|
||||
return meta.Open()
|
||||
}
|
||||
|
||||
target := strings.TrimPrefix(meta.Path(), owner.File().Dir())
|
||||
target := strings.TrimPrefix(meta.Path, owner.File().Dir())
|
||||
|
||||
return owner.s.ResourceSpec.New(
|
||||
resources.ResourceSourceDescriptor{
|
||||
@@ -394,7 +394,7 @@ func (m *pageMap) assembleResources(s string, p *pageState, parentBucket *pagesM
|
||||
m.resources.WalkPrefix(s, func(s string, v interface{}) bool {
|
||||
n := v.(*contentNode)
|
||||
meta := n.fi.Meta()
|
||||
classifier := meta.Classifier()
|
||||
classifier := meta.Classifier
|
||||
var r resource.Resource
|
||||
switch classifier {
|
||||
case files.ContentClassContent:
|
||||
|
Reference in New Issue
Block a user