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 support for recording Profiling information #190

Merged
merged 26 commits into from
Mar 31, 2022
Merged

Add support for recording Profiling information #190

merged 26 commits into from
Mar 31, 2022

Conversation

smarr
Copy link
Owner

@smarr smarr commented Mar 31, 2022

This PR relates to #166 and #178.
Issue #187 does currently not reproduce, so, I will assume it's fixed.

Features

Executors can now define a profiler section.
The profiler currently supported is perf, for which the record and report arguments can be specified.

An experiment would define an action attribute which is set to profile to enable profile recording.

Denoise will set the kernel settings to enable perf profiling.

We add a parser to read perf output and send a more compact JSON representation to ReBenchDB.

Misc

  • version is bumped to 1.1.dev1

Status

This has been used with ReBenchDB in production already.

This is an attempt to reduce the amount of data that needs to be kept, and sent to ReBenchDB.

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
This gives a bit more flexibility

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
This avoid double encoding the JSON as a string.
A JSON string inside JSON wouldn't be great...

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
This is simpler than calculating stats, so, just track the count. And avoid printing a warning since we don't have min runtime for profiling.

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
…s and a profile2 test case

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
- skip empty lines

Signed-off-by: Stefan Marr <git@stefan-marr.de>
@smarr smarr added the Feature label Mar 31, 2022
I don’t know what’s failing here, so, this is debug code.

Signed-off-by: Stefan Marr <git@stefan-marr.de>
@smarr smarr merged commit e401c85 into master Mar 31, 2022
@smarr smarr deleted the profiling branch March 31, 2022 21:43
@coveralls
Copy link

coveralls commented Mar 31, 2022

Coverage Status

Coverage increased (+1.0%) to 82.365% when pulling 4f3438f on profiling into 3230c6a on master.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants