Closed GaruGaru closed 2 years ago
Comments fixed, if we want more performance gains probably a lazy eval for the tree is needed, but I guess that it would require a major refactor to be archived.
From my benchmarks the vast majority of CPU time is spent on system calls, in particular: Readdirsnames
and os.Lstat
.
Comments fixed, if we want more performance gains probably a lazy eval for the tree is needed, but I guess that it would require a major refactor to be archived.
From my benchmarks the vast majority of CPU time is spent on system calls, in particular:
Readdirsnames
andos.Lstat
.
I agree on the lazy evaluation. It would be a better approach but would definitely require a major update. Thanks for the remarks on Readdirsnames
and os.Lstat
too 👍 I will try to find if there’s a way to use less syscalls other than using lazy eval
Summary
Use
golang.org/x/sync/errgroup
to perform concurrent directory traversal / listing.Fixes #17
Impact
Please delete options that are not relevant.
Testing
Test Configuration:
1.18
I7 6700HQ, 16Gb Memory DDR4, SSD
Linux 5.10.146-1-MANJARO x86_64 GNU/Linux
Benchmarks