-
Notifications
You must be signed in to change notification settings - Fork 225
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
Add additional benchmarks #565
Conversation
Thanks! Can you fix clippy? Also, would be nice to see some example results, could you simply post the machine you used and the output of the benchmark here? :) I wonder what a good structure would be find "interesting" benchmarks if the set of benchmarks in the repository increases. Maybe we should have some logical structure w.r.t. what benchmarks we have. |
@evnu yes I agree, for now I just included all benchmarks I used even though there is a bit overlap with existing benchmarks just to start a discussion. What about having a single |
As an addition, it would be nice if rustler also had a standard way for rustler projects to add benchrmarks/tests that would automatically be setup for PGO, following these steps: https://doc.rust-lang.org/rustc/profile-guided-optimization.html#a-complete-cargo-workflow Something that could be configured in project Native.ex:
Rustler would then use a combination of internal benchmarks and the Project provided benchmark to merge a combined instrumentation file. by default if not provided rustler could still use internal benchmarks to run PGO. I guess PGO would automatically perform some optimizations that this PR is doing manually: #475 |
W.r.t. regression in CI/CD, in my experience, that seldomly works well unless one puts in considerable effort. CI/CD is run on non-dedicated machines, so results can vary wildly. I wouldn't put too much work into that. Enabling running all benchmarks with a single command sounds good. I guess for that we would need to make the benchmarks coherent, so that the runs "tell a story". Otherwise, someone running the benchmarks still needs to read the benchmark code first to understand what it is all about.
Interesting suggestion. This goes out-of-scope of this PR, maybe create a separate ticket just for that? I have never played with PGO yet, so I don't know how complicated it is to use. |
Neither have I, yes I think a separate PR is a better fit. I'll leave this PR here for now and I'll create another one for PGO. Can come back to this one later to see if it's still of interest. |
@cleaton seems I kind make the github actions run again. Can you rebase on master so that the tests run again? |
Benchmarks used to verify #482 . At that time there was no benchmarks setup in rustler yet so I didn't include them in the PR.
As there is now, this might be of use for others or CI/CD integration.