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 compilation performance regression tests #57

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

Add compilation performance regression tests #57

baszalmstra opened this issue Nov 20, 2019 · 6 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 compilation times and add regression tests
  • start a Pull Request. Set description to closes #57. If this is your first PR, welcome 🎉 😄

This could be combined with #58

@baszalmstra
Copy link
Collaborator Author

Some initial runtime 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
@ChrisPWill
Copy link

Howdy, I'd like to have a go at tackling this. It may take a little time since I'll need to learn a little about the libraries in question, and don't have a huge amount of time at the moment, but it doesn't seem super difficult.

Do we have a definition of done for this issue? Is it a case of setting up the framework and adding "some" regression tests?

@Wodann
Copy link
Collaborator

Wodann commented Jun 23, 2020

Hi, thank you for helping out! 🙂

The most uncertain part is the Continuous Integration. As we don't have dedicated hardware, our regression tests will suffer from variable workloads. That will probably result in a lot of false positives/negatives.

Until we find enough funding or a sponsor, we will probably need to manually run these regression tests periodically (and consequently pinpoint regressions in history) and ask suspect PRs to do the same. So no need to worry about that aspect.

W.r.t. specific tests, you could:

  • reuse Mun code in existing test cases (there are a lot of them, so that should provide some volume)
  • reuse Mun code in the Rust examples

Metrics that we'll want to benchmark are:

  • first-time compilation
  • incremental compilation
  • edit-to-hot-reload latency (this benchmark will need to be in the mun_runtime crate)

Overall, that might be quite some work, so feel free to only implement a subset of these in your first PR.

@ChrisPWill
Copy link

Great, thanks for the clarification and tips! That's a shame re: CI, but I guess that can be fixed down the track. It all sounds like good fun and I'm excited to be involved, will try and open a WIP PR some time soon to keep the discussion going.

@Wodann
Copy link
Collaborator

Wodann commented Jul 25, 2020

Hi @ChrisPWill. How has your work on this been going? Do you need any help?

@Wodann Wodann modified the milestones: Mun v0.3.0, Mun v0.5.0 Aug 28, 2020
@Wodann
Copy link
Collaborator

Wodann commented Oct 4, 2020

Hi @ChrisPWill. As we haven't heard from you in a while, I'm removing you as the assignee for this issue, such that other people can also try their luck.

We hope to see you back in the Mun community soon! When you do pick this issue back up, please post a message here 🙂

@Wodann Wodann removed this from the Mun v0.5.0 milestone Oct 31, 2023
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