From 04c97aa36473bc0070a2fe46e86dc645dc75ee85 Mon Sep 17 00:00:00 2001 From: Felipe Leopoldo Sologuren GutiƩrrez Date: Mon, 16 Jan 2023 13:21:44 -0300 Subject: Change use of Walk to WalkDir to improve disk performance (#22462) As suggest by Go developers, use `filepath.WalkDir` instead of `filepath.Walk` because [*Walk is less efficient than WalkDir, introduced in Go 1.16, which avoids calling `os.Lstat` on every file or directory visited](https://pkg.go.dev/path/filepath#Walk). This proposition address that, in a similar way as https://github.com/go-gitea/gitea/pull/22392 did. Co-authored-by: zeripath Co-authored-by: Lunny Xiao --- modules/storage/local.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'modules/storage') diff --git a/modules/storage/local.go b/modules/storage/local.go index ca51d26c9a..a6a9d54a8c 100644 --- a/modules/storage/local.go +++ b/modules/storage/local.go @@ -129,7 +129,7 @@ func (l *LocalStorage) URL(path, name string) (*url.URL, error) { // IterateObjects iterates across the objects in the local storage func (l *LocalStorage) IterateObjects(fn func(path string, obj Object) error) error { - return filepath.Walk(l.dir, func(path string, info os.FileInfo, err error) error { + return filepath.WalkDir(l.dir, func(path string, d os.DirEntry, err error) error { if err != nil { return err } @@ -141,7 +141,7 @@ func (l *LocalStorage) IterateObjects(fn func(path string, obj Object) error) er if path == l.dir { return nil } - if info.IsDir() { + if d.IsDir() { return nil } relPath, err := filepath.Rel(l.dir, path) -- cgit v1.2.3