other: slightly reduce the CPU time spent for draws #918
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.
Description
A description of the change, what it does, and why it was made. If relevant (such as any change that modifies the UI), please provide screenshots of the changes:
Slightly reduces CPU time spent on drawing through two small changes:
truncate_text
a bit.The first change results in graphs with a lot of stacked datasets like the "all" CPU graph looking like this instead:
(For small graphs with few/one dataset, it looks the same):
We can replicate the old effect by switching layers on each draw, but I'm not sure if it's better or worse.
Perfromance-wise can see the general effects through flamegraphs (
cargo flamegraph --bin btm
, withdebug = true
andstrip = false
):Before the change, drawing took almost 40% of the flamegraph time (measured over ~30 minutes):
After, it's taking only about 14% (also ~30 minutes):
The other usage from the flamegraph is about the same, so it should hopefully be a reasonable comparison. Running the pre-change and post-change binaries together also shows less CPU time spent on the post-change binary.
Issue
If applicable, what issue does this address?
Closes: #
Testing
If relevant, please state how this was tested. All changes must be tested to work:
If this is a code change, please also indicate which platforms were tested:
Checklist
If relevant, ensure the following have been met:
cargo fmt
)README.md
, help menu, doc pages, etc.)