diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-07-13 11:41:02 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-07-15 17:14:26 +0200 |
commit | 022c4795510306e08a4aba31504ca382d41c7fac (patch) | |
tree | d4c29f62038d0f336d90f32f46bc5b4f5c3ddc28 /hugolib/pages_process.go | |
parent | f27e542442d19436f1428cc22bb03aca398d37a7 (diff) |
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
Diffstat (limited to 'hugolib/pages_process.go')
-rw-r--r-- | hugolib/pages_process.go | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/hugolib/pages_process.go b/hugolib/pages_process.go index 90b67a717..89a306a3b 100644 --- a/hugolib/pages_process.go +++ b/hugolib/pages_process.go @@ -89,7 +89,7 @@ func (proc *pagesProcessor) Wait() error { } func (proc *pagesProcessor) getProcFromFi(fi hugofs.FileMetaInfo) pagesCollectorProcessorProvider { - if p, found := proc.procs[fi.Meta().Lang()]; found { + if p, found := proc.procs[fi.Meta().Lang]; found { return p } return defaultPageProcessor @@ -151,7 +151,7 @@ func (p *sitePagesProcessor) copyFile(fim hugofs.FileMetaInfo) error { s := p.m.s - target := filepath.Join(s.PathSpec.GetTargetLanguageBasePath(), meta.Path()) + target := filepath.Join(s.PathSpec.GetTargetLanguageBasePath(), meta.Path) defer f.Close() @@ -171,7 +171,7 @@ func (p *sitePagesProcessor) doProcess(item interface{}) error { } meta := v.Meta() - classifier := meta.Classifier() + classifier := meta.Classifier switch classifier { case files.ContentClassContent: if err := m.AddFilesBundle(v); err != nil { @@ -192,5 +192,5 @@ func (p *sitePagesProcessor) doProcess(item interface{}) error { func (p *sitePagesProcessor) shouldSkip(fim hugofs.FileMetaInfo) bool { // TODO(ep) unify - return p.m.s.SourceSpec.DisabledLanguages[fim.Meta().Lang()] + return p.m.s.SourceSpec.DisabledLanguages[fim.Meta().Lang] } |