Feature: mark a Func as no_profiling, to prevent injection of profiling. #8136
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a small change that allows you to
.no_profiling()
on aFunc
to prevent the corresponding ProducerConsumer node to not be instrumented with profiling. Therefore all the collected samples are attributed to the enclosingProducerConsumer
. I wanted to give this a try to see what the generated code looks like.I was thinking this might be useful to get rid of this overhead manually when you are working on pipelines that have a
Func
without any loops sitting in the innermost loop nest level, e.g.: theFunc
gets compiled to only 1 to 5 instructions.Feedback and opinions welcome!
My use case:
This code full of profiling injections (with an unrolled loop around it):
Became this:
Meanwhile, the profile report went from:
to: