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

trace processor - cleanup and fixes ☂️ #14708

Open
paulirish opened this issue Jan 25, 2023 · 2 comments
Open

trace processor - cleanup and fixes ☂️ #14708

paulirish opened this issue Jan 25, 2023 · 2 comments
Assignees
Labels

Comments

@paulirish
Copy link
Member

paulirish commented Jan 25, 2023

Forking off from #14287

arch

  • Refactor the traceprocessor flow. In short: determine the "inspected" pids/frames in one pass before doing all the subsetting.
  • Verify we handle metric calculation of multiple navigations correctly. (For timespan mode)
  • While trace-processor could organize all processes found in the trace, I think it's better to just instantly whittle down the events to the "inspected" process tree and frame tree. Drop everything else, so no metric calculation code needs to filter for themselves.
  • handle the pid reuse case (however unlikely that is while tracing). Having just a map of pid->tid says nothing about the timing. Seems like we might need a temporal aspect to the tracking as well? Or just step though the trace, subsetting in chunks between any FrameCommittedInBrowser events.

frames

  • Clarify that frameEvents/frameTreeEvents are a subset of all events from that frame.
  • Adopt isOutermostMainFrame?

allframes metrics

audit traceEvent usages

  • Review all uses of trace.traceEvents as there's potentially a mistake handling pids/frames.
  • Audit all uses of .args[.data].frame to see if there's a better way to ensure the data is reliably there.
  • Validate all uses of startingPid are using it correctly. (They're probably not)
@connorjclark
Copy link
Collaborator

I assume we don't really want to do this housekeeping for our trace processor. Is there anything here that carries over to CDT's trace engine?

@paulirish
Copy link
Member Author

I assume we don't really want to do this housekeeping for our trace processor. Is there anything here that carries over to CDT's trace engine?

  • Adopt isOutermostMainFrame?
  • verify the allframes thing.
  • and probably.. Let metahandler provide the process overview to all handlers until waiting till finalize.

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

No branches or pull requests

4 participants