This CL improves
on my Windows 7
name old time/op new time/op delta
Readdirname 58.1µs ± 1% 58.1µs ± 0% ~ (p=0.817 n=8+8)
Readdir 58.0µs ± 3% 57.8µs ± 0% ~ (p=0.944 n=9+8)
name old alloc/op new alloc/op delta
Readdirname 3.03kB ± 0% 2.84kB ± 0% -6.33% (p=0.000 n=10+10)
Readdir 3.00kB ± 0% 2.81kB ± 0% -6.40% (p=0.000 n=10+10)
name old allocs/op new allocs/op delta
Readdirname 34.0 ± 0% 30.0 ± 0% -11.76% (p=0.000 n=10+10)
Readdir 33.0 ± 0% 29.0 ± 0% -12.12% (p=0.000 n=10+10)
on my Windows XP
name old time/op new time/op delta
Readdirname-2 85.5µs ± 0% 84.0µs ± 0% -1.83% (p=0.000 n=10+10)
Readdir-2 84.6µs ± 0% 83.5µs ± 0% -1.31% (p=0.000 n=10+9)
name old alloc/op new alloc/op delta
Readdirname-2 6.52kB ± 0% 5.66kB ± 0% -13.25% (p=0.000 n=10+10)
Readdir-2 6.39kB ± 0% 5.53kB ± 0% -13.52% (p=0.000 n=10+10)
name old allocs/op new allocs/op delta
Readdirname-2 78.0 ± 0% 66.0 ± 0% -15.38% (p=0.000 n=10+10)
Readdir-2 77.0 ± 0% 65.0 ± 0% -15.58% (p=0.000 n=10+10)
Change-Id: I5d698eca86b8e94a46b6cfbd5947898b7b3fbdbd
Reviewed-on: https://go-review.googlesource.com/42894
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
FileSizeHigh: d.FileSizeHigh,
FileSizeLow: d.FileSizeLow,
},
- path: file.dirinfo.path + `\` + name,
+ path: file.dirinfo.path,
+ appendNameToPath: true,
}
n--
fi = append(fi, f)
// used to implement SameFile
sync.Mutex
- path string
- vol uint32
- idxhi uint32
- idxlo uint32
+ path string
+ vol uint32
+ idxhi uint32
+ idxlo uint32
+ appendNameToPath bool
}
func (fs *fileStat) Size() int64 {
// already done
return nil
}
- pathp, err := syscall.UTF16PtrFromString(fs.path)
+ var path string
+ if fs.appendNameToPath {
+ path = fs.path + `\` + fs.name
+ } else {
+ path = fs.path
+ }
+ pathp, err := syscall.UTF16PtrFromString(path)
if err != nil {
return err
}