summaryrefslogtreecommitdiffstats
path: root/create
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2021-07-13 11:41:02 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2021-07-15 17:14:26 +0200
commit022c4795510306e08a4aba31504ca382d41c7fac (patch)
treed4c29f62038d0f336d90f32f46bc5b4f5c3ddc28 /create
parentf27e542442d19436f1428cc22bb03aca398d37a7 (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 'create')
-rw-r--r--create/content.go14
1 files changed, 7 insertions, 7 deletions
diff --git a/create/content.go b/create/content.go
index 797ffe758..ea065423e 100644
--- a/create/content.go
+++ b/create/content.go
@@ -123,7 +123,7 @@ func NewContent(
func targetSite(sites *hugolib.HugoSites, fi hugofs.FileMetaInfo) *hugolib.Site {
for _, s := range sites.Sites {
- if fi.Meta().Lang() == s.Language().Lang {
+ if fi.Meta().Lang == s.Language().Lang {
return s
}
}
@@ -137,7 +137,7 @@ func newContentFromDir(
cm archetypeMap, name, targetPath string) error {
for _, f := range cm.otherFiles {
meta := f.Meta()
- filename := meta.Path()
+ filename := meta.Path
// Just copy the file to destination.
in, err := meta.Open()
if err != nil {
@@ -166,7 +166,7 @@ func newContentFromDir(
}
for _, f := range cm.contentFiles {
- filename := f.Meta().Path()
+ filename := f.Meta().Path
s := targetSite(sites, f)
targetFilename := filepath.Join(targetPath, strings.TrimPrefix(filename, archetypeDir))
@@ -274,7 +274,7 @@ func resolveContentPath(sites *hugolib.HugoSites, fs afero.Fs, targetPath string
for _, dir := range sites.BaseFs.Content.Dirs {
meta := dir.Meta()
- contentDir := meta.Filename()
+ contentDir := meta.Filename
if !strings.HasSuffix(contentDir, helpers.FilePathSeparator) {
contentDir += helpers.FilePathSeparator
@@ -282,7 +282,7 @@ func resolveContentPath(sites *hugolib.HugoSites, fs afero.Fs, targetPath string
if strings.HasPrefix(targetPath, contentDir) {
siteContentDir = contentDir
- dirLang = meta.Lang()
+ dirLang = meta.Lang
break
}
}
@@ -317,8 +317,8 @@ func resolveContentPath(sites *hugolib.HugoSites, fs afero.Fs, targetPath string
} else {
var contentDir string
for _, dir := range sites.BaseFs.Content.Dirs {
- contentDir = dir.Meta().Filename()
- if dir.Meta().Lang() == s.Lang() {
+ contentDir = dir.Meta().Filename
+ if dir.Meta().Lang == s.Lang() {
break
}
}