trace_processor: implement an iterator API and make trace to text use it

This CL implements an iterator API which allows users of trace processor
to pull values from queries rather than all values to be copied to protos

This especially has a big impact on trace to text as we know that every
line it queries from the trace processor will be a long string and moving
to this model saves 3/4 of the run time on long traces.

Change-Id: I1e3cb0555bc4839b29b3a6397ef111232f597659
6 files changed
tree: 81146d50ad8623876a88adb78ad5f53458458ff4
  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.gn
  20. codereview.settings
  21. heapprofd.rc
  22. MODULE_LICENSE_APACHE2
  23. NOTICE
  24. OWNERS
  25. perfetto.rc
  26. PRESUBMIT.py
  27. README.chromium
  28. README.md
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.