-
Notifications
You must be signed in to change notification settings - Fork 19
Add gperftools profiler #1054
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 gperftools profiler #1054
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #1054 +/- ##
=======================================
Coverage 96.23% 96.23%
=======================================
Files 128 128
Lines 10852 10867 +15
=======================================
+ Hits 10443 10458 +15
Misses 409 409 ☔ View full report in Codecov by Sentry. |
reneSchm
left a comment
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 could not get this to work on the cluster, but it looks good otherwise.
In the cpp/README.md the entry for the benchmark dir is missing, maybe we could add something like
- benchmarks: applications to measure the performance of the framework. More information on profiling [can be found here](benchmarks/profiling.md).
so that the documentation is easier to find. I had to look at the "Files changed" tab to locate it.
Also, please add a description for "MEMILIO_ENABLE_PROFILING" in the "Configuring using CMake" section.
improved valgrind placeholder description improved gperftools usage docs documentation of profiler.h documentation of cmake options added hints/links to benchmarks directory in main README
|
added documentation for the cmake option (including some others that were added recently). added links to profiling to the cpp README. |
reneSchm
left a comment
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.
Thanks for writing all this documentation!
I could verify the gperf steps work on native Linux, the Cluster should work as well, but had some issues possibly due to spack quirks.
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 was able to run the profiler on MacOS 11.7.10.
It was important to also install the PkgConfig, I think we didn't have this as a requirement before. Perhaps we can add this to the installation process?
One thing that didn't work is the conversion of the .out file to .pdf, as proof-symbolize tries to access libs that were moved with MacOS 11. I am not sure how to resolve this. Here is some more information:
error: /Library/Developer/CommandLineTools/usr/bin/otool-classic: can't open file: /usr/lib/liboah.dylib (No such file or directory)
and about 100 similar more.
Here's a thread about this on apple.com:
https://developer.apple.com/forums/thread/655588?answerId=623718022#623718022
And another issue (thanks René) that lists the same problem:
google/pprof#726
Changes and Information
@DavidKerkmann maybe you could give gperftools on MacOS a try? I haven't been able to find reliable information about whether it works or how to get it. apparently homebrew should work?
Closes #1053
Merge Request - Guideline Checklist
Please check our git workflow. Use the draft feature if the Pull Request is not yet ready to review.
Checks by code author
Checks by code reviewer(s)