-
Notifications
You must be signed in to change notification settings - Fork 120
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 profiler/benchmark module #583
Conversation
Codecov Report
@@ Coverage Diff @@
## main #583 +/- ##
=====================================
Coverage 93.7% 93.7%
=====================================
Files 50 50
Lines 5339 5339
=====================================
Hits 5004 5004
Misses 335 335 Continue to review full report at Codecov.
|
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.
Looks good over all, some comments from my side.
@@ -0,0 +1 @@ | |||
.pymon |
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.
Does the profile module need its own .gitignore?
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.
I thought that it's better to keep this as separate as possible for now - maybe we'll find that another package like memory-profiler is actually better for our use case...
|
||
### Installation | ||
|
||
In addition to an installation of **pyam** with all optional dependencies, |
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.
Would it not make sense to add this as an installation option to setup.py
? Perhaps under EXTRA_REQUIREMENTS
under the key benchmark
or something along those lines?
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.
Similar to the previous reply: I'd keep all changes related to profiling contained in this folder for now, to avoid that we switch to another profiling solution but have stray/outdated references in other parts of the package.
Thanks for the suggestions, @phackstock: my strategy here was to keep all changes related to profiling contained within this folder until we have figured out whether pytest-monitor is indeed the best solution for our use case. I also did some more experiments with memory-profiler... I suggest to merge this PR as is and then continue working on performance improvements and other benchmarking/profiling tests. |
@danielhuppmann sounds like a sensible approach to me. Having a benchmarking suite as part of the main branch of pyam is a good thing for sure. From my side we are good to merge. |
Added a note to the module-readme per suggestion by @phackstock |
Merging as is this is only an exploratory, work-in-progress module with no interconnection to the existing functionality of the package. |
Please confirm that this PR has done the following:
Tests AddedDescription of PR
This PR adds a "profile" module collecting some utility code for benchmarking and profile tests that I used for working on #580. This module is not intended to be tested or executed automatically as part of the CI/CD