| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
Compare pinned baseline and candidate setup-java commits across isolated cold and warm Microsoft JDK runs, with raw timing and cache-size artifacts. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Temporarily route the registered focused benchmark workflow through the reusable JDK cache benchmark for branch execution. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Remove the temporary branch-dispatch wiring now that JDK cache samples are complete, leaving the reusable benchmark harness intact for retention. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Adds a new benchmark harness to measure the impact of a default-on JDK cache in actions/setup-java by running pinned “baseline” vs “candidate” commits in isolated cold/warm jobs, then generating a summarized report and artifacts.
Changes:
| File | Description |
|---|---|
| scripts/report.test.mjs | Adds unit test coverage for parsing JDK cache benchmark job names. |
| scripts/report-jdk-cache.mjs | Implements report generation for the new JDK cache benchmark, including cache discovery and optional cleanup. |
| README.md | Documents the new JDK cache benchmark workflow and its sequential sampling/cleanup requirement. |
| .github/workflows/jdk-cache.yml | Defines the new benchmark workflow and report/artifact upload steps. |
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Sorry, something went wrong.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Retain the stricter seed/read-only implementation while joining the prior benchmark history.\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
| Back | FazBrowse Home | New Git URL |
Summary
Why seed then measure
JDK cache keys are content-derived from the JDK identity and source, so they cannot be namespaced with a per-sample marker. A normal cold/warm matrix would let one sample's JDK entry contaminate another. The prepare job deletes existing setup-java-jdk- entries, each arm then runs one seed, and every measurement job uses cache-read-only: true. Measurement jobs can restore caches but cannot save, collide on, or race for the shared JDK key. Dependency and Maven Wrapper caches remain isolated with arm- and run-specific marker content.
A setup-java runner tool-cache hit returns before JDK cache restore/save registration. Every seed and measurement job therefore removes Java_* from $RUNNER_TOOL_CACHE first. Microsoft Build of OpenJDK is the default; Temurin remains available as an input to exercise the same forced-miss path.
This PR consolidates the earlier pinned baseline/candidate harness and PR #11. The earlier harness was successfully sampled five times, but those runs predate this same-ref, seed/read-only design; the consolidated workflow itself has intentionally not been dispatched from the PR.
How to run
Open Actions > JDK cache > Run workflow. For the primary comparison, use:
Validation