Skip to content

GROOVY-12162: Harden and extend bytecode peephole optimization#2707

Open
daniellansun wants to merge 1 commit into
masterfrom
GROOVY-12162
Open

GROOVY-12162: Harden and extend bytecode peephole optimization#2707
daniellansun wants to merge 1 commit into
masterfrom
GROOVY-12162

Conversation

@daniellansun

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.50.

Benchmark suite Current: 1af9d64 Previous: 9b4176b Ratio
org.apache.groovy.bench.dispatch.CallsiteBench.dispatch_3_polymorphic_java 5691.388654636719 ops/ms 1955.236532921272 ops/ms 2.91
org.apache.groovy.bench.dispatch.CallsiteBench.dispatch_8_megamorphic_java 5464.4882871295895 ops/ms 2104.722797070265 ops/ms 2.60
org.apache.groovy.bench.AryBench.groovyCS ( {"n":"1000000"} ) 269.68580655 ms/op 121.84325067058822 ms/op 2.21
org.apache.groovy.bench.AryBench.java ( {"n":"1000000"} ) 272.513390825 ms/op 122.03707291764707 ms/op 2.23

This comment was automatically generated by workflow using github-action-benchmark.

@codecov-commenter

codecov-commenter commented Jul 13, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 85.39326% with 13 lines in your changes missing coverage. Please review.
✅ Project coverage is 69.1185%. Comparing base (3740ee7) to head (1af9d64).

Files with missing lines Patch % Lines
...rg/codehaus/groovy/classgen/AsmClassGenerator.java 58.3333% 5 Missing ⚠️
.../classgen/asm/PeepholeOptimizingMethodVisitor.java 92.4242% 0 Missing and 5 partials ⚠️
...codehaus/groovy/classgen/asm/WriterController.java 50.0000% 1 Missing and 2 partials ⚠️
Additional details and impacted files

Impacted file tree graph

@@                Coverage Diff                 @@
##               master      #2707        +/-   ##
==================================================
+ Coverage     69.1120%   69.1185%   +0.0065%     
- Complexity      34251      34272        +21     
==================================================
  Files            1537       1538         +1     
  Lines          129403     129427        +24     
  Branches        23526      23535         +9     
==================================================
+ Hits            89433      89458        +25     
+ Misses          31944      31943         -1     
  Partials         8026       8026                
Files with missing lines Coverage Δ
...g/codehaus/groovy/classgen/asm/CallSiteWriter.java 85.5769% <100.0000%> (-0.1374%) ⬇️
...y/classgen/asm/PeepholeOptimizingClassVisitor.java 100.0000% <100.0000%> (ø)
...codehaus/groovy/classgen/asm/WriterController.java 86.1111% <50.0000%> (-1.1229%) ⬇️
...rg/codehaus/groovy/classgen/AsmClassGenerator.java 85.0399% <58.3333%> (-0.0217%) ⬇️
.../classgen/asm/PeepholeOptimizingMethodVisitor.java 95.2020% <92.4242%> (+0.5496%) ⬆️

... and 6 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

github-actions Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

JMH summary — classic (commit c460375)

Speedup vs trailing 90-day baseline on gh-pages. Higher = faster.
1.00 = in line with history. Per-benchmark ratio, geomean within group.
Time-per-op units inverted so direction is consistent. The calibrated
column divides out this runner's speed vs the baseline hardware, as
measured by Groovy-independent pure-Java ruler benchmarks.

Group Speedup Calibrated n
bench 0.966 × 0.989 × 84
core 0.968 × 0.877 × 77
grails 0.971 × 0.950 × 80

⚠️ Runner speed differs ≥15% from the historical baseline hardware for: core-hz. Raw speedups are not meaningful for those parts — use the calibrated column.

Runner calibration (this run vs baseline hardware): bench 0.98× (26 rulers) · core-ag 1.06× (3 rulers) · core-hz 1.16× (3 rulers) · grails-ad 1.04× (3 rulers) · grails-ez 1.01× (3 rulers)

Baseline: dev/bench/jmh/<part>/classic/data.js on gh-pages, trailing 90 days. Daily dashboard · Per-suite raw data

@github-actions

github-actions Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

JMH summary — indy (commit c460375)

Speedup vs trailing 90-day baseline on gh-pages. Higher = faster.
1.00 = in line with history. Per-benchmark ratio, geomean within group.
Time-per-op units inverted so direction is consistent. The calibrated
column divides out this runner's speed vs the baseline hardware, as
measured by Groovy-independent pure-Java ruler benchmarks.

Group Speedup Calibrated n
bench 1.112 × 0.941 × 84
core 3.452 × 3.257 × 77
grails 2.247 × 2.419 × 80

⚠️ Runner speed differs ≥15% from the historical baseline hardware for: bench. Raw speedups are not meaningful for those parts — use the calibrated column.

Runner calibration (this run vs baseline hardware): bench 1.15× (26 rulers) · core-ag 1.14× (3 rulers) · core-hz 0.97× (3 rulers) · grails-ad 0.95× (3 rulers) · grails-ez 0.91× (3 rulers)

Baseline: dev/bench/jmh/<part>/indy/data.js on gh-pages, trailing 90 days. Daily dashboard · Per-suite raw data

@sonarqubecloud

Copy link
Copy Markdown

@testlens-app

testlens-app Bot commented Jul 14, 2026

Copy link
Copy Markdown

✅ All tests passed ✅

🏷️ Commit: 1af9d64
▶️ Tests: 103851 executed
⚪️ Checks: 31/31 completed


Learn more about TestLens at testlens.app.

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