mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
Revise the use of htime.Since/htime.Now
We cannot (also, it doesn't add any value) use that when the `clock` is set, * To measure time (before that global is set) * To compare file timestamps re cache eviction Fixes #9868
This commit is contained in:
parent
860c51c314
commit
51f08b0b6a
9 changed files with 22 additions and 20 deletions
6
cache/filecache/filecache.go
vendored
6
cache/filecache/filecache.go
vendored
|
@ -24,7 +24,6 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/gohugoio/hugo/common/htime"
|
|
||||||
"github.com/gohugoio/hugo/common/hugio"
|
"github.com/gohugoio/hugo/common/hugio"
|
||||||
|
|
||||||
"github.com/gohugoio/hugo/helpers"
|
"github.com/gohugoio/hugo/helpers"
|
||||||
|
@ -296,7 +295,10 @@ func (c *Cache) isExpired(modTime time.Time) bool {
|
||||||
if c.maxAge < 0 {
|
if c.maxAge < 0 {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return c.maxAge == 0 || htime.Since(modTime) > c.maxAge
|
|
||||||
|
// Note the use of time.Since here.
|
||||||
|
// We cannot use Hugo's global Clock for this.
|
||||||
|
return c.maxAge == 0 || time.Since(modTime) > c.maxAge
|
||||||
}
|
}
|
||||||
|
|
||||||
// For testing
|
// For testing
|
||||||
|
|
|
@ -18,7 +18,6 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/gohugoio/hugo/common/htime"
|
|
||||||
"github.com/gohugoio/hugo/common/hugo"
|
"github.com/gohugoio/hugo/common/hugo"
|
||||||
"github.com/gohugoio/hugo/common/loggers"
|
"github.com/gohugoio/hugo/common/loggers"
|
||||||
hpaths "github.com/gohugoio/hugo/common/paths"
|
hpaths "github.com/gohugoio/hugo/common/paths"
|
||||||
|
@ -152,7 +151,7 @@ built with love by spf13 and friends in Go.
|
||||||
|
|
||||||
Complete documentation is available at https://gohugo.io/.`,
|
Complete documentation is available at https://gohugo.io/.`,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
defer cc.timeTrack(htime.Now(), "Total")
|
defer cc.timeTrack(time.Now(), "Total")
|
||||||
cfgInit := func(c *commandeer) error {
|
cfgInit := func(c *commandeer) error {
|
||||||
if cc.buildWatch {
|
if cc.buildWatch {
|
||||||
c.Set("disableLiveReload", true)
|
c.Set("disableLiveReload", true)
|
||||||
|
@ -238,7 +237,7 @@ func (cc *hugoBuilderCommon) timeTrack(start time.Time, name string) {
|
||||||
if cc.quiet {
|
if cc.quiet {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
elapsed := htime.Since(start)
|
elapsed := time.Since(start)
|
||||||
fmt.Printf("%s in %v ms\n", name, int(1000*elapsed.Seconds()))
|
fmt.Printf("%s in %v ms\n", name, int(1000*elapsed.Seconds()))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -681,7 +681,11 @@ func (c *commandeer) firstPathSpec() *helpers.PathSpec {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *commandeer) timeTrack(start time.Time, name string) {
|
func (c *commandeer) timeTrack(start time.Time, name string) {
|
||||||
elapsed := htime.Since(start)
|
// Note the use of time.Since here and time.Now in the callers.
|
||||||
|
// We have a htime.Sinnce, but that may be adjusted to the future,
|
||||||
|
// and that does not make sense here, esp. when used before the
|
||||||
|
// global Clock is initialized.
|
||||||
|
elapsed := time.Since(start)
|
||||||
c.logger.Printf("%s in %v ms", name, int(1000*elapsed.Seconds()))
|
c.logger.Printf("%s in %v ms", name, int(1000*elapsed.Seconds()))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -792,7 +796,7 @@ func (c *commandeer) fullRebuild(changeType string) {
|
||||||
time.Sleep(2 * time.Second)
|
time.Sleep(2 * time.Second)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
defer c.timeTrack(htime.Now(), "Rebuilt")
|
defer c.timeTrack(time.Now(), "Rebuilt")
|
||||||
|
|
||||||
c.commandeerHugoState = newCommandeerHugoState()
|
c.commandeerHugoState = newCommandeerHugoState()
|
||||||
err := c.loadConfig()
|
err := c.loadConfig()
|
||||||
|
@ -1137,7 +1141,7 @@ func (c *commandeer) handleEvents(watcher *watcher.Batcher,
|
||||||
c.changeDetector.PrepareNew()
|
c.changeDetector.PrepareNew()
|
||||||
|
|
||||||
func() {
|
func() {
|
||||||
defer c.timeTrack(htime.Now(), "Total")
|
defer c.timeTrack(time.Now(), "Total")
|
||||||
if err := c.rebuildSites(dynamicEvents); err != nil {
|
if err := c.rebuildSites(dynamicEvents); err != nil {
|
||||||
c.handleBuildErr(err, "Rebuild failed")
|
c.handleBuildErr(err, "Rebuild failed")
|
||||||
}
|
}
|
||||||
|
|
|
@ -251,7 +251,7 @@ func (sc *serverCmd) server(cmd *cobra.Command, args []string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
err = func() error {
|
err = func() error {
|
||||||
defer c.timeTrack(htime.Now(), "Built")
|
defer c.timeTrack(time.Now(), "Built")
|
||||||
err := c.serverBuild()
|
err := c.serverBuild()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
cmd.PrintErrln("Error:", err.Error())
|
cmd.PrintErrln("Error:", err.Error())
|
||||||
|
|
|
@ -24,7 +24,6 @@ import (
|
||||||
"runtime"
|
"runtime"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/gohugoio/hugo/common/htime"
|
|
||||||
"github.com/gohugoio/hugo/common/terminal"
|
"github.com/gohugoio/hugo/common/terminal"
|
||||||
|
|
||||||
jww "github.com/spf13/jwalterweatherman"
|
jww "github.com/spf13/jwalterweatherman"
|
||||||
|
@ -177,7 +176,7 @@ func (l *logger) Out() io.Writer {
|
||||||
// PrintTimerIfDelayed prints a time statement to the FEEDBACK logger
|
// PrintTimerIfDelayed prints a time statement to the FEEDBACK logger
|
||||||
// if considerable time is spent.
|
// if considerable time is spent.
|
||||||
func (l *logger) PrintTimerIfDelayed(start time.Time, name string) {
|
func (l *logger) PrintTimerIfDelayed(start time.Time, name string) {
|
||||||
elapsed := htime.Since(start)
|
elapsed := time.Since(start)
|
||||||
milli := int(1000 * elapsed.Seconds())
|
milli := int(1000 * elapsed.Seconds())
|
||||||
if milli < 500 {
|
if milli < 500 {
|
||||||
return
|
return
|
||||||
|
@ -186,7 +185,7 @@ func (l *logger) PrintTimerIfDelayed(start time.Time, name string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *logger) PrintTimer(start time.Time, name string) {
|
func (l *logger) PrintTimer(start time.Time, name string) {
|
||||||
elapsed := htime.Since(start)
|
elapsed := time.Since(start)
|
||||||
milli := int(1000 * elapsed.Seconds())
|
milli := int(1000 * elapsed.Seconds())
|
||||||
l.Printf("%s in %v ms", name, milli)
|
l.Printf("%s in %v ms", name, milli)
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,6 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/gohugoio/hugo/common/htime"
|
|
||||||
"github.com/gohugoio/hugo/common/types"
|
"github.com/gohugoio/hugo/common/types"
|
||||||
"github.com/gohugoio/hugo/compare"
|
"github.com/gohugoio/hugo/compare"
|
||||||
"github.com/gohugoio/hugo/helpers"
|
"github.com/gohugoio/hugo/helpers"
|
||||||
|
@ -130,7 +129,7 @@ func (s *Store) TrackValue(key string, value any, cached bool) {
|
||||||
// MeasureSince adds a measurement for key to the metric store.
|
// MeasureSince adds a measurement for key to the metric store.
|
||||||
func (s *Store) MeasureSince(key string, start time.Time) {
|
func (s *Store) MeasureSince(key string, start time.Time) {
|
||||||
s.mu.Lock()
|
s.mu.Lock()
|
||||||
s.metrics[key] = append(s.metrics[key], htime.Since(start))
|
s.metrics[key] = append(s.metrics[key], time.Since(start))
|
||||||
s.mu.Unlock()
|
s.mu.Unlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,6 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/bep/debounce"
|
"github.com/bep/debounce"
|
||||||
"github.com/gohugoio/hugo/common/htime"
|
|
||||||
"github.com/gohugoio/hugo/common/loggers"
|
"github.com/gohugoio/hugo/common/loggers"
|
||||||
|
|
||||||
"github.com/spf13/cast"
|
"github.com/spf13/cast"
|
||||||
|
@ -506,7 +505,7 @@ func (c *collector) applyThemeConfig(tc *moduleAdapter) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *collector) collect() {
|
func (c *collector) collect() {
|
||||||
defer c.logger.PrintTimerIfDelayed(htime.Now(), "hugo: collected modules")
|
defer c.logger.PrintTimerIfDelayed(time.Now(), "hugo: collected modules")
|
||||||
d := debounce.New(2 * time.Second)
|
d := debounce.New(2 * time.Second)
|
||||||
d(func() {
|
d(func() {
|
||||||
c.logger.Println("hugo: downloading modules …")
|
c.logger.Println("hugo: downloading modules …")
|
||||||
|
|
|
@ -25,8 +25,8 @@ import (
|
||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/gohugoio/hugo/common/htime"
|
|
||||||
texttemplate "github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate"
|
texttemplate "github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate"
|
||||||
|
|
||||||
"github.com/gohugoio/hugo/helpers"
|
"github.com/gohugoio/hugo/helpers"
|
||||||
|
@ -222,7 +222,7 @@ func createKey(name string, variants ...any) (partialCacheKey, error) {
|
||||||
var errUnHashable = errors.New("unhashable")
|
var errUnHashable = errors.New("unhashable")
|
||||||
|
|
||||||
func (ns *Namespace) getOrCreate(ctx context.Context, key partialCacheKey, context any) (result any, err error) {
|
func (ns *Namespace) getOrCreate(ctx context.Context, key partialCacheKey, context any) (result any, err error) {
|
||||||
start := htime.Now()
|
start := time.Now()
|
||||||
defer func() {
|
defer func() {
|
||||||
if r := recover(); r != nil {
|
if r := recover(); r != nil {
|
||||||
err = r.(error)
|
err = r.(error)
|
||||||
|
|
|
@ -27,10 +27,10 @@ import (
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
"time"
|
||||||
"unicode"
|
"unicode"
|
||||||
"unicode/utf8"
|
"unicode/utf8"
|
||||||
|
|
||||||
"github.com/gohugoio/hugo/common/htime"
|
|
||||||
"github.com/gohugoio/hugo/common/types"
|
"github.com/gohugoio/hugo/common/types"
|
||||||
|
|
||||||
"github.com/gohugoio/hugo/helpers"
|
"github.com/gohugoio/hugo/helpers"
|
||||||
|
@ -235,7 +235,7 @@ func (t *templateExec) ExecuteWithContext(ctx context.Context, templ tpl.Templat
|
||||||
defer rlocker.RUnlock()
|
defer rlocker.RUnlock()
|
||||||
}
|
}
|
||||||
if t.Metrics != nil {
|
if t.Metrics != nil {
|
||||||
defer t.Metrics.MeasureSince(templ.Name(), htime.Now())
|
defer t.Metrics.MeasureSince(templ.Name(), time.Now())
|
||||||
}
|
}
|
||||||
|
|
||||||
if t.templateUsageTracker != nil {
|
if t.templateUsageTracker != nil {
|
||||||
|
|
Loading…
Reference in a new issue