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

Add Mun performance regression tests #58

Open
5 tasks
baszalmstra opened this issue Nov 20, 2019 · 8 comments
Open
5 tasks

Add Mun performance regression tests #58

baszalmstra opened this issue Nov 20, 2019 · 8 comments
Labels
exp: low Achievable with little prior knowledge and guidance good first issue Good for newcomers pri: high An issue resulting in complete or substantial loss of functionality, that can be circumvented type: test Adding missing tests or correcting existing tests

Comments

@baszalmstra
Copy link
Collaborator

baszalmstra commented Nov 20, 2019

  • claim this issue (assign yourself or comment below)
  • setup repository on your local machine and make sure all tests pass (cargo test)
  • read our contributing guidelines
  • add a framework (I've been looking at criterion but you're free to use whatever) to benchmark Mun code and add regression tests
  • start a Pull Request. Set description to closes #58. If this is your first PR, welcome 🎉 😄

This could be combined with #57

@baszalmstra
Copy link
Collaborator Author

Some initial performance benchmarks have been added here: #104

@Wodann Wodann added pri: high An issue resulting in complete or substantial loss of functionality, that can be circumvented type: test Adding missing tests or correcting existing tests exp: low Achievable with little prior knowledge and guidance labels May 22, 2020
@Wodann Wodann added this to the Mun v0.3.0 milestone May 23, 2020
@Wodann
Copy link
Collaborator

Wodann commented May 26, 2020

For completeness, benchmark results were included in the march blog

@bytewife
Copy link

Is this issue still valid? If so, I'll take this one on!

@baszalmstra
Copy link
Collaborator Author

@ivyraine Fantastic! Let me know if you need help!

@bytewife
Copy link

@baszalmstra Happy holidays! I'll take you up on some questions- please bear with me as I get up to speed on the project 😅 Firstly, what are the most important parts of Mun to test for performance regressions? Should we begin with the benchmarks linked here? Secondly, how would you recommend setting up the tests? I was thinking it would be useful to run the tests in CI, but criterion recommends against it.

@bytewife
Copy link

bytewife commented Dec 28, 2022

Ah, I missed the similar issue here, which has some details on CI! To be clear, this issue is about testing the performance of the language runtime, and #57 is about compilation performance?

It appears that iai can get around issues regarding having inconsistent hardware in cloud CI. However it seems like the project isn't maintained. What are your thoughts on using it?

Note: rustc uses rustc-perf, which sadly doesn't provide a crate. It provides a mix of wall-time and hardware-independent metrics like instruction count.

@bytewife
Copy link

After some thought, I feel that the best course of action is to create some tests (similar to the ones in benchmark.rs) using iai. In another issue, we can create a CI regression testing interface in the same vein as rustc-perf. How does this sound?

@baszalmstra
Copy link
Collaborator Author

@ivyraine that sounds good! We can also run the benchmarks on dedicated hardware from time to time to get consistent results. Alternatively, we could also invest in dedicated hardware.

This issue is about measuring the performance of compiled Mun code indeed. The biggest thing we want to achieve here is to spot regressions more easily.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
exp: low Achievable with little prior knowledge and guidance good first issue Good for newcomers pri: high An issue resulting in complete or substantial loss of functionality, that can be circumvented type: test Adding missing tests or correcting existing tests
Projects
None yet
Development

No branches or pull requests

3 participants