Skip to content

perf: Process merge-string sections in more even chunks#1345

Merged
davidlattimore merged 1 commit into
mainfrom
push-nzpsxtkrvvws
Nov 27, 2025
Merged

perf: Process merge-string sections in more even chunks#1345
davidlattimore merged 1 commit into
mainfrom
push-nzpsxtkrvvws

Conversation

@davidlattimore

Copy link
Copy Markdown
Member

For string-merge sections, we now process chunks of 140KB regardless of section boundaries.

For string-merge sections, we now process chunks of 140KB regardless of
section boundaries.
@davidlattimore

Copy link
Copy Markdown
Member Author

I see the following changes in benchmarks for this change (Ryzen 9955HX with 32 threads):

clang-debug: -7.2%
clang-release: no change
librustc-driver: -2.3%
wild: -3.0%

@mati865

mati865 commented Nov 27, 2025

Copy link
Copy Markdown
Member

Funny how good the wall time is, despite everything else glowing red:

Benchmark 2 (3 runs): ./run-with ~/Projects/wild/target/dist/wild-1345 --no-fork
  measurement          mean ± σ            min … max           outliers         delta
  wall_time          1.93s  ± 8.19ms    1.92s  … 1.93s           0 ( 0%)        ⚡-  6.9% ±  1.5%
  peak_rss           24.5GB ± 4.82MB    24.5GB … 24.5GB          0 ( 0%)          -  0.3% ±  0.1%
  cpu_cycles          233G  ±  995M      232G  …  233G           0 ( 0%)          +  0.7% ±  1.6%
  instructions        237G  ±  723M      237G  …  238G           0 ( 0%)        💩+  3.4% ±  0.5%
  cache_references   4.23G  ± 32.5M     4.20G  … 4.26G           0 ( 0%)        💩+ 10.5% ±  1.5%
  cache_misses       1.16G  ± 6.66M     1.15G  … 1.17G           0 ( 0%)        💩+  6.6% ±  1.1%
  branch_misses      1.14G  ± 1.81M     1.13G  … 1.14G           0 ( 0%)        💩+  1.6% ±  0.3%

@davidlattimore davidlattimore merged commit d4568b1 into main Nov 27, 2025
20 checks passed
@davidlattimore davidlattimore deleted the push-nzpsxtkrvvws branch November 27, 2025 20:33
@MatthijsKok

MatthijsKok commented Nov 28, 2025

Copy link
Copy Markdown

Funny how good the wall time is, despite everything else glowing red:

Benchmark 2 (3 runs): ./run-with ~/Projects/wild/target/dist/wild-1345 --no-fork
  measurement          mean ± σ            min … max           outliers         delta
  wall_time          1.93s  ± 8.19ms    1.92s  … 1.93s           0 ( 0%)        ⚡-  6.9% ±  1.5%
  peak_rss           24.5GB ± 4.82MB    24.5GB … 24.5GB          0 ( 0%)          -  0.3% ±  0.1%
  cpu_cycles          233G  ±  995M      232G  …  233G           0 ( 0%)          +  0.7% ±  1.6%
  instructions        237G  ±  723M      237G  …  238G           0 ( 0%)        💩+  3.4% ±  0.5%
  cache_references   4.23G  ± 32.5M     4.20G  … 4.26G           0 ( 0%)        💩+ 10.5% ±  1.5%
  cache_misses       1.16G  ± 6.66M     1.15G  … 1.17G           0 ( 0%)        💩+  6.6% ±  1.1%
  branch_misses      1.14G  ± 1.81M     1.13G  … 1.14G           0 ( 0%)        💩+  1.6% ±  0.3%

What benchmark program is this? @mati865

@mati865

mati865 commented Nov 28, 2025

Copy link
Copy Markdown
Member

@MatthijsKok this is poop mentioned in https://github.com/davidlattimore/wild/blob/b9c585a4e1a6118e5c125d8cc8a8701144149d0f/BENCHMARKING.md?plain=1#L89

FYI, this was on clang with RelWithDbgInfo profile.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants