Skip to content

chore(benchmark): compare mixed workload phases across compilers - #1882

Merged
nahime0 merged 4 commits into
mainfrom
chore/performance-baseline-v2
Oct 19, 2026
Merged

nahime0 merged 4 commits into
mainfrom
chore/performance-baseline-v2

Conversation

@nahime0

@nahime0 nahime0 commented Oct 18, 2026 •

Copy link
Copy Markdown
Member

The historical benchmark suites measure process wall time, which hides the remaining costs inside mixed workloads. Add an opt-in comparison runner that compiles one shared PHP fixture with explicitly selected compiler revisions and measures arithmetic, closure calls, string append, dynamic eval, JSON decode with teardown, total body time and process wall time separately.

The runner requires real PHP, checks every warmup and measured checksum, rotates variant order, preserves raw samples and executable/input fingerprints, isolates runtime caches, and rejects noisy phases using median absolute deviation. Defaults are two warmups, 21 rounds and a 5% noise limit. Historical data and workflows are unchanged.

Validation: all 42 benchmark tooling tests pass with the exact CI discovery command, the PHP fixture passes php -n -l, and git diff --check passes. A quiet Linux x86_64 comparison used two warmups and 21 rotating samples on CPU11 with 64MiB native heaps. Body medians for published v0.27.3 / merged main f96ee9e / PHP8.5.11 are 1004.094 / 21.887 / 8.099 ms; process wall medians are 1009.222 / 26.884 / 34.526 ms. Every phase passed the 5% MAD gate (maximum 2.28%). These ratios describe this fixture only.

Require a source revision for every compiler label before any subprocess starts. SHA-256 fingerprints use bounded streaming reads without depending on Python 3.11 APIs; regression tests cover empty, short and multichunk files plus missing and partially supplied revisions.

@github-actions github-actions Bot added area:tooling-ci Touches CI, development tooling, Docker, or repository scripts. size:s Small pull request. type:chore Updates maintenance, tooling, dependencies, or housekeeping. labels Oct 18, 2026
@nahime0
nahime0 marked this pull request as ready for review October 18, 2026 21:44
@nahime0

nahime0 commented Oct 18, 2026

Copy link
Copy Markdown
Member Author

@greptileai please review the current head 7e772ce.

@greptile-apps

greptile-apps Bot commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Low impact] The PR appears safe to merge; both previous findings are fixed and no new actionable issues remain.

Summary

Adds an opt-in runner that compares mixed-workload phases across selected compilers and PHP.

  • Compiler comparisons now show mixed-workload phase and process times.

No new actionable issues were found in the changes since the previous review.

Reviews (2) · Last reviewed commit: "fix(benchmark): require revisions and po..." · Reviewed by Greptile

Comment thread benchmark/compare.py Outdated
Comment thread benchmark/compare.py
@nahime0
nahime0 marked this pull request as draft October 18, 2026 21:54
@nahime0
nahime0 marked this pull request as ready for review October 18, 2026 22:00
@nahime0

nahime0 commented Oct 18, 2026

Copy link
Copy Markdown
Member Author

@greptileai please review current head 4380c55. Both reported issues are fixed, with regression tests.

@nahime0
nahime0 merged commit e4b45c3 into main Oct 19, 2026
186 of 187 checks passed
@nahime0
nahime0 deleted the chore/performance-baseline-v2 branch October 19, 2026 08:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:tooling-ci Touches CI, development tooling, Docker, or repository scripts. size:s Small pull request. type:chore Updates maintenance, tooling, dependencies, or housekeeping.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant