google / google/perfetto

Improve perf of flows in highly-connected traces

Open
#3,224 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
6.5k
Forks
868
Avg merge
2d 1h
Merged PRs (30d)
218

Description

*Discussed in https://github.com/google/perfetto/discussions/3220*

TLDR: we should improve both rendering and query performance on traces with slices which are highly connected with flows (e.g. there is an indirect path from one slice to O(100k) slices).

It's unclear what the best way to proceed with this is:
1) We can have a "depth limit": it solves both the rendering and query problems *but* it can lead to very confusing situations on traces with deep but infrequent flows (e.g. if there is a chain of depth 10 but also is linear so it's only 10 slices long)
2) We can have a "slice limit": would solve both problems *but* again could have confusing semantics of flows becoming missing arbitrarily.
3) We can make the querying based on the currently active window: this solves both problems when zoomed in *but* it doesn't solve the rendering *nor* the query problem when zoomed out.
4) Maybe some combination of the above: unclear what that should look like that.

I think this is pretty low priority but maybe we should think about this when revamping how flows work.

Contributor guide

Open the contributing guide

Research direction

Start with the discussion at https://github.com/google/perfetto/discussions/3220 and compare the proposed depth limit, slice limit, and active-window approaches. The work is done when an approach is agreed and both flow rendering and querying perform acceptably on highly connected traces without confusing missing-flow semantics.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.