trace_processor: introduce better support for sorting proto traces

Our hardcoded number for the proto window sizes has caused no end of
issues with various people running into issues with very long traces
which have very little data in them (so the whole trace could be
loaded into memory)

Use the observation that long traces which also consume a lot of space
(i.e. long running sched capture) also is almost certainly writing
to file. These traces should also be using flush (if not then they
will have to accept trace processor being unable to work with them
for now - see the bug for info on how we will fix this in the future)

For these traces, use 2 * max{file period, flush period} as the
window size for sorting. For all other traces, move to having an
infinite window size.

Bug: 132620032
Change-Id: Ib16cb820beeb11598106459ce419e47a15c7ac4d
10 files changed
tree: 9fb7405122a2c0243e3c59ed2789ceee59e6de52
  1. build_overrides/
  2. buildtools/
  3. debian/
  4. docs/
  5. gn/
  6. include/
  7. infra/
  8. protos/
  9. src/
  10. test/
  11. tools/
  12. ui/
  13. .clang-format
  14. .gitignore
  15. .gn
  16. .travis.yml
  17. Android.bp
  18. Android.bp.extras
  19. BUILD
  20. BUILD.extras
  21. BUILD.gn
  22. codereview.settings
  23. heapprofd.rc
  24. MODULE_LICENSE_APACHE2
  25. NOTICE
  26. OWNERS
  27. perfetto.rc
  28. PRESUBMIT.py
  29. README.chromium
  30. README.md
  31. TEST_MAPPING
README.md

Perfetto - Performance instrumentation and tracing

Perfetto is an open-source project for performance instrumentation and tracing of Linux/Android/Chrome platforms and user-space apps.

See www.perfetto.dev for docs.

Bugs

  • For bugs affecting Android or the tracing internals use the internal bug tracker (go/perfetto-bugs).
  • For bugs affecting Chrome use http://crbug.com, Component:Speed>Tracing label:Perfetto.