-
Notifications
You must be signed in to change notification settings - Fork 183
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
Gearama/profile debug #5464
Gearama/profile debug #5464
Conversation
tools/perf-automation/Azure.Sdk.Tools.PerfAutomation/Program.cs
Outdated
Show resolved
Hide resolved
tools/perf-automation/Azure.Sdk.Tools.PerfAutomation/ILanguage.cs
Outdated
Show resolved
Hide resolved
tools/perf-automation/Azure.Sdk.Tools.PerfAutomation/LanguageBase.cs
Outdated
Show resolved
Hide resolved
…gearama/profileDebug
@gearama: The code changes look good to me, however before merging this PR I'd like to verify it works end-to-end, and I have a few questions related to this.
For installing the As part of the C++ PR to install |
…-sdk-tools into gearama/profileDebug
…gearama/profileDebug
Should profiling work correctly if ProfilerOptions is not set? If it currently does not, can we define a reasonable set of defaults so it does? Should we add a top-level ProfilerOptions to the C++ pipelines (and the tools - perf-automation pipeline)? Or were you thinking users would set these via the AdditionalArguments textbox that already exists? [[gearama]] i would make it a separate field if needed, if it works as aditional params i would not bother adding it as a separata field. |
I am able to run this PR with no errors, and I can verify valgrind was run, but the generated profile zip is empty, because no profile output files were generated under the azure-sdk-tools/tools/perf-automation/Azure.Sdk.Tools.PerfAutomation/Util.cs Lines 120 to 123 in da16722
You will need to generate an output filename, example in JS here: azure-sdk-tools/tools/perf-automation/Azure.Sdk.Tools.PerfAutomation/JavaScript.cs Lines 150 to 152 in da16722
Then either pass this filename to |
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.
If a profile output file should be generated by default, this PR needs additional changes.
by default valgrind outputs to stderr , i prefer to leave it as it is for the moment until the need for a file presents itself. personally i don't see the need for one, all the data is in the log. |
If the data you need is in the console log, I agree publishing to an artifact file is optional. Most profilers in other languages output a binary file that needs to be loaded in a tool to view the data, so these are published in an artifact zip file, since there would be no way to view the data in the console log. |
This LGTM, we can merge this now and add more features to cpp profiling in future PRs. |
Enable the passing of the debug option to the setup method for languages (it was missing) also enable running valgrind tool for profiling for cpp . Should i do the install of the tool here or in the pipeline? i tend for the pipeline since i don't know exactly what linux i'm runing and what package tool it it using.
Also added a profiler options param. valgrind has several profilers that can be selected through command line, thus i need this param to be able to execute properly.
Added tests for the method creating the command lines to be executed to build. Since the Util methods are static in a static class they cannot be mocked, thus i had to work around it to get the parameters of the method calls to be able to compare them with expected values.