processor: Expose a C++ API for ExportJson to chrome

Turns out this makes a few things simpler for chrome:
(1) Chrome uses argument/metadata/label filters, which are predicates.
(2) Makes it possible to pass in something other than an FD for output.

(1) is tricky to solve declaratively given the complexity of these
filters and the existing legacy code in chromium. (2) could be solved
by providing a memory-backed FILE* on posix (fmemopen) - but not so
easily on windows.

Thus this new API allows providing the filter predicates (impl TODO)
and a custom writer for output.

Bug: 130786269
Change-Id: I002e67d5160157bd494c85dbe2c159695bd24c25
11 files changed
tree: e90e88db0c5bb62f6ea390bd72729672c8ca47be
  1. bazel/
  2. build_overrides/
  3. buildtools/
  4. debian/
  5. docs/
  6. gn/
  7. include/
  8. infra/
  9. protos/
  10. src/
  11. test/
  12. tools/
  13. ui/
  14. .clang-format
  15. .gitignore
  16. .gn
  17. .style.yapf
  18. Android.bp
  19. Android.bp.extras
  20. BUILD
  21. BUILD.extras
  22. BUILD.gn
  23. codereview.settings
  24. heapprofd.rc
  25. MODULE_LICENSE_APACHE2
  26. NOTICE
  27. OWNERS
  28. perfetto.rc
  29. PRESUBMIT.py
  30. README.chromium
  31. README.md
  32. TEST_MAPPING
  33. WORKSPACE
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.

Community

You can reach us on our Discord channel. If you prefer using IRC we have an experimental Discord <> IRC bridge synced with #perfetto-dev on Freenode.