-
Notifications
You must be signed in to change notification settings - Fork 991
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
Added a GitHub Action to check for performance regressions within the incoming changes from PRs, along with two test cases based on historical regressions #6078
Conversation
Generated via commit a65b088 Download link for the artifact containing the test results: ↓ atime-results.zip Time taken to finish the standard R installation steps: 11 minutes and 34 seconds Time taken to run |
thanks! can you please change the name of the file from autocomment to performance-tests? |
Sure! |
Is there a particular reason we need to ship this with the package? My instinct would be to put it in e.g. the I only ask because we already generate a CRAN |
@jangorecki Hello Jan! I was wondering if you know of the commit/source that introduced the regression discussed in #4311 (since you mentioned in a comment there that the regression was already in 1.12.8) |
Yes, I'd be fine only acting on PRs that touch files in R/ or src/. That means a path filter. |
Right on! |
I read the manual and under 'Details' for the
So I presume yes, unfortunately. But I believe @tdhock can change this path to be customizable and then we can redirect?
I completely agree. |
…nce the last commit of #4440 failed to check out
…s well since the newly provided commit SHA is wrong
this is possible, see tdhock/atime#41 for an implementation, would that be OK? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
better comments, thanks! please revise again though.
perfect, no need to address anything in this PR then |
…he second test case)
… yesterday (tick removals), added a link to the related atime vignette, tried to write in as much detail as I understand and included optional parameters for test.list
…rrent commits to be working (tested locally, but just to ensure..)
…e working as expected.
# A list of performance tests. | ||
# | ||
# Each entry in this list corresponds to a performance test and contains a sublist with three mandatory arguments: | ||
# - N: A numeric sequence of data sizes to vary. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
off-topic / thinking aloud: @tdhock have you considered extending {atime} for timing surfaces in 2 dimensions? i'm wondering if we'd benefit from (nrow, ncol)
2D benchmarking in some case. Now we are restricted to marginal approach (nrow
, then ncol
), but the interaction effects can sometimes be interesting.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
atime is inherently 1 dimensional (N varies), but you can make nrow and ncol vary with N
Co-authored-by: Michael Chirico <michaelchirico4@gmail.com>
I am happy with the current state, I'll let Toby give final approval. Thanks again! |
thanks! |
@Anirban166 can you please make a follow-up PR which adds another test, and moves tests under .ci? (I should have asked you to do that before merging, but forgot) |
This adds a GHA that will get triggered by every commit in a pull request to the master branch, creating and updating one comment on the PR thread.
As discussed here, it aims to aid in detecting performance degradation for the code changes introduced in PRs using test cases based on historical regressions that we would be maintaining in
inst/atime/tests.R
(added the file for starters, containing the two cases that I used for the examples I mentioned there; more test cases are to be added in the future)Should probably be skipped for certain PRs, like for changes not based on code (such as documentation or comments) or minor things that are known to not have an impact on performance.
Note: I couldn't come up with a good name for my workflow file so I just named it
autocomment
(hopefully not confusing since at present there isn't another GHA workflow being used indata.table
that makes comments!), but please feel free to suggest a better name or change it later.Closes #6065
Closes #4687