Overhaul `FileSearch` and `SearchPaths` `FileSearch::search()` traverses one or more directories. For each directory it generates a `Vec<PathBuf>` containing one element per file in that directory. In some benchmarks this occurs enough that the allocations done for the `PathBuf`s are significant, and in practice a small number of directories are being traversed over and over again. For example, when compiling the `tokio-webpush-simple` benchmark, two directories are traversed 58 times each. Each of these directories have more than 100 files. We can do all the necessary traversals up front, when `Session` is created, and get the `Vec<PathBuf>`s then. This reduces instruction counts on several benchmarks by 1--5%. r? @alexcrichton CC @eddyb, @michaelwoerister, @nikomatsakis |
||
|---|---|---|
| .. | ||
| clean | ||
| html | ||
| passes | ||
| Cargo.toml | ||
| config.rs | ||
| core.rs | ||
| doctree.rs | ||
| externalfiles.rs | ||
| fold.rs | ||
| lib.rs | ||
| markdown.rs | ||
| README.md | ||
| test.rs | ||
| theme.rs | ||
| visit_ast.rs | ||
| visit_lib.rs | ||
For more information about how librustdoc works, see the rustc guide.