Skip to content

perf: Merge some of the GC phases into a single phase#1330

Merged
davidlattimore merged 1 commit into
mainfrom
push-urrwnopppqku
Nov 24, 2025
Merged

perf: Merge some of the GC phases into a single phase#1330
davidlattimore merged 1 commit into
mainfrom
push-urrwnopppqku

Conversation

@davidlattimore

@davidlattimore davidlattimore commented Nov 24, 2025

Copy link
Copy Markdown
Member

The change to symbol-version-symver-error.c is because on opensuse the object wasn't being compiled as position-independent. This wasn't causing the test to fail previously because we were hitting the expected error before the other error (Cannot apply relocation R_X86_64_32 to read-only section). This change however caused the order of the errors to change.

@davidlattimore davidlattimore changed the base branch from main to push-oskypkvyltsp November 24, 2025 06:53
Base automatically changed from push-oskypkvyltsp to main November 24, 2025 06:58
@davidlattimore davidlattimore merged commit 2ac2d18 into main Nov 24, 2025
20 checks passed
@davidlattimore davidlattimore deleted the push-urrwnopppqku branch November 24, 2025 10:37
@mati865

mati865 commented Nov 24, 2025

Copy link
Copy Markdown
Member

Nice improvements on Clang without debug info! Base is before your refactors and this PR:

Benchmark 1 (67 runs): ./run-with ~/Projects/wild/target/dist/wild-base --no-fork
  measurement          mean ± σ            min … max           outliers         delta
  wall_time          75.3ms ± 1.24ms    72.8ms … 78.1ms          0 ( 0%)        0%
  peak_rss            852MB ±  953KB     850MB …  854MB          0 ( 0%)        0%
  cpu_cycles         6.04G  ± 57.4M     5.90G  … 6.16G           0 ( 0%)        0%
  instructions       3.94G  ± 9.24M     3.92G  … 3.96G           1 ( 1%)        0%
  cache_references   81.7M  ±  528K     80.3M  … 82.9M           4 ( 6%)        0%
  cache_misses       25.4M  ±  128K     25.1M  … 25.7M           0 ( 0%)        0%
  branch_misses      9.08M  ± 28.8K     9.04M  … 9.20M           3 ( 4%)        0%
Benchmark 2 (68 runs): ./run-with ~/Projects/wild/target/dist/wild --no-fork
  measurement          mean ± σ            min … max           outliers         delta
  wall_time          74.2ms ± 1.07ms    72.6ms … 78.8ms          1 ( 1%)          -  1.4% ±  0.5%
  peak_rss            851MB ± 1.00MB     849MB …  854MB          3 ( 4%)          -  0.1% ±  0.0%
  cpu_cycles         5.95G  ± 49.8M     5.84G  … 6.09G           2 ( 3%)        ⚡-  1.5% ±  0.3%
  instructions       3.94G  ± 6.84M     3.92G  … 3.96G           0 ( 0%)          +  0.1% ±  0.1%
  cache_references   84.6M  ±  707K     83.2M  … 86.6M           0 ( 0%)        💩+  3.5% ±  0.3%
  cache_misses       25.4M  ±  132K     25.1M  … 25.7M           0 ( 0%)          -  0.2% ±  0.2%
  branch_misses      9.17M  ± 30.8K     9.09M  … 9.22M           0 ( 0%)          +  1.0% ±  0.1%

EDIT: also similar (maybe slightly better) improvement on Wild debug build.

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.

2 participants