Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: improve benchmark build time by only building once #3201

Merged
merged 1 commit into from
May 8, 2024
Merged

Conversation

Boshen
Copy link
Member

@Boshen Boshen commented May 7, 2024

relates #3200

@Boshen Boshen changed the title ci: try improve benchmark build time by relaxing debug info and lto ci: try improve benchmark build time May 7, 2024
@Boshen Boshen force-pushed the bench-lto branch 8 times, most recently from ae65d8a to ffdd83f Compare May 8, 2024 06:22
Copy link

codspeed-hq bot commented May 8, 2024

CodSpeed Performance Report

Merging #3201 will not alter performance

Comparing bench-lto (15b9947) with main (cba1e7f)

Summary

✅ 27 untouched benchmarks

@Boshen Boshen changed the title ci: try improve benchmark build time ci: improve benchmark build time May 8, 2024
@Boshen Boshen changed the title ci: improve benchmark build time ci: improve benchmark build time by only building once May 8, 2024
@Boshen Boshen merged commit 5683ace into main May 8, 2024
26 checks passed
@Boshen Boshen deleted the bench-lto branch May 8, 2024 06:54
Boshen pushed a commit that referenced this pull request May 10, 2024
This PR builds on #3201 to further speed up the benchmarks and reduce CI
time.

* Build and run each benchmark as separate job (like before).
* But now each bench is only built with the dependencies it needs.
* For linter benchmarks, build benchmark in 1 job (like #3201 does).
* Run each linter fixture in a separate job as they're slow.

This reduces total time to complete benchmarks from between 6m-7m to
~4m40s.

All the individual jobs complete in under 1m30s, except for building
linter benchmark which takes 2m30s. So there won't be the problem of
blocking the CI queue that there was before.

NB: I did try this before, and didn't see a benefit. But I realized
today what I was doing wrong - it only works once the caches are
populated by a previous run on main branch.

So the CI times in this PR won't look good, but once it's merged to
main, it will take effect. Here it is running on main branch of my fork:

https://github.com/overlookmotel/oxc/actions/runs/9030511348

I also added a step to delete the temp artefacts which aren't needed
once the run has completed.
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.

1 participant