Skip to content

Commit aa2d68b

Browse files
authored
Unrolled build for rust-lang#121781
Rollup merge of rust-lang#121781 - RalfJung:bootstrap-fmt, r=clubby789 bootstrap/format: send larger batches to rustfmt This helps on systems with low core counts. To benchmark this I made a lot of files be modified: ``` for FILE in $(find compiler/ -name "*.rs"); do echo "// end of the file" >>$FILE; done ``` Then I ran ``` hyperfine "./x.py fmt -j1" -w 1 -r 4 ``` Before this patch: ``` Benchmark 1: ./x.py fmt -j1 Time (mean ± σ): 3.426 s ± 0.032 s [User: 4.681 s, System: 1.376 s] Range (min … max): 3.389 s … 3.462 s 4 runs ``` With this patch: ``` Benchmark 1: ./x.py fmt -j1 Time (mean ± σ): 2.530 s ± 0.054 s [User: 4.042 s, System: 0.467 s] Range (min … max): 2.452 s … 2.576 s 4 runs ```
2 parents 71a7b66 + c54d92c commit aa2d68b

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/bootstrap/src/core/build_steps/format.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -279,8 +279,8 @@ pub fn format(build: &Builder<'_>, check: bool, paths: &[PathBuf]) {
279279
let thread = std::thread::spawn(move || {
280280
let mut children = VecDeque::new();
281281
while let Ok(path) = rx.recv() {
282-
// try getting a few more paths from the channel to amortize the overhead of spawning processes
283-
let paths: Vec<_> = rx.try_iter().take(7).chain(std::iter::once(path)).collect();
282+
// try getting more paths from the channel to amortize the overhead of spawning processes
283+
let paths: Vec<_> = rx.try_iter().take(63).chain(std::iter::once(path)).collect();
284284

285285
let child = rustfmt(&src, &rustfmt_path, paths.as_slice(), check);
286286
children.push_back(child);

0 commit comments

Comments
 (0)