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

feat(tasks): shard linter benchmarks in CI #2752

Merged
merged 1 commit into from
Mar 18, 2024

Conversation

overlookmotel
Copy link
Contributor

@overlookmotel overlookmotel commented Mar 18, 2024

Follow-on from #2751. Further shards linter benchmarks so each fixture runs in its own job.

This reduces total time to run benchmarks by another ~75 secs. So approx 2.5 mins shaved off in total.

Copy link
Contributor Author

overlookmotel commented Mar 18, 2024

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @overlookmotel and the rest of your teammates on Graphite Graphite

Copy link

codspeed-hq bot commented Mar 18, 2024

CodSpeed Performance Report

Merging #2752 will not alter performance

Comparing 03-18-feat_tasks_shard_linter_benchmarks_in_CI (6126b9f) with main (93e1ea4)

Summary

✅ 29 untouched benchmarks

@overlookmotel
Copy link
Contributor Author

What's taking most of the time is building the benchmarks, not running them.

@Boshen Is there any way to get Github Actions to cache the builds, so e.g. if a PR only makes changes to oxc_transformer, then the oxc_linter benchmarks don't need to be re-built? It feels like this should be possible, but I haven't got a clue how. Do you?

Copy link
Member

Boshen commented Mar 18, 2024

Merge activity

  • Mar 17, 10:45 PM EDT: @Boshen started a stack merge that includes this pull request via Graphite.
  • Mar 17, 10:46 PM EDT: Graphite rebased this pull request as part of a merge.
  • Mar 17, 10:50 PM EDT: @Boshen merged this pull request with Graphite.

Base automatically changed from 03-17-feat_tasks_shard_benchmarks_in_CI to main March 18, 2024 02:45
@Boshen Boshen force-pushed the 03-18-feat_tasks_shard_linter_benchmarks_in_CI branch from b927af6 to 6126b9f Compare March 18, 2024 02:46
@Boshen
Copy link
Member

Boshen commented Mar 18, 2024

What's taking most of the time is building the benchmarks, not running them.

@Boshen Is there any way to get Github Actions to cache the builds, so e.g. if a PR only makes changes to oxc_transformer, then the oxc_linter benchmarks don't need to be re-built? It feels like this should be possible, but I haven't got a clue how. Do you?

Feels weird that argo build --release -p oxc_benchmark --features codspeed --bench linter builds all the crates, may need to look into it in the future.

@Boshen Boshen merged commit 68f304f into main Mar 18, 2024
29 checks passed
@Boshen Boshen deleted the 03-18-feat_tasks_shard_linter_benchmarks_in_CI branch March 18, 2024 02:50
@overlookmotel
Copy link
Contributor Author

@Boshen oxc_benchmark does have dependencies on all the crates, so I guess they need to be built, even though they'll be "tree shaken" out during linking.

FYI, I did try out making sure only the crates which are needed for each benchmark get compiled, by disabling the rest with optional features:

overlookmotel@e753b6b

But this made no real difference to the build time. Almost all the time is spent building oxc_benchmark itself.

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