mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-20 21:31:32 +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:
@@ -281,7 +281,7 @@ func (h *HugoSites) GetContentPage(filename string) page.Page {
|
||||
return false
|
||||
}
|
||||
|
||||
if b.fi.Meta().Filename() == filename {
|
||||
if b.fi.Meta().Filename == filename {
|
||||
p = b.p
|
||||
return true
|
||||
}
|
||||
@@ -769,7 +769,7 @@ func (h *HugoSites) removePageByFilename(filename string) {
|
||||
return false
|
||||
}
|
||||
|
||||
return b.fi.Meta().Filename() == filename
|
||||
return b.fi.Meta().Filename == filename
|
||||
})
|
||||
return nil
|
||||
})
|
||||
@@ -919,7 +919,7 @@ func (h *HugoSites) errWithFileContext(err error, f source.File) error {
|
||||
return err
|
||||
}
|
||||
|
||||
realFilename := fim.Meta().Filename()
|
||||
realFilename := fim.Meta().Filename
|
||||
|
||||
err, _ = herrors.WithFileContextForFile(
|
||||
err,
|
||||
@@ -1079,12 +1079,12 @@ func (m *contentChangeMap) resolveAndRemove(filename string) (string, bundleDirT
|
||||
|
||||
func (m *contentChangeMap) addSymbolicLinkMapping(fim hugofs.FileMetaInfo) {
|
||||
meta := fim.Meta()
|
||||
if !meta.IsSymlink() {
|
||||
if !meta.IsSymlink {
|
||||
return
|
||||
}
|
||||
m.symContentMu.Lock()
|
||||
|
||||
from, to := meta.Filename(), meta.OriginalFilename()
|
||||
from, to := meta.Filename, meta.OriginalFilename
|
||||
if fim.IsDir() {
|
||||
if !strings.HasSuffix(from, helpers.FilePathSeparator) {
|
||||
from += helpers.FilePathSeparator
|
||||
|
Reference in New Issue
Block a user