TraceProcessor: Add binary RPC interface

Doc: https://docs.google.com/document/d/1Xno5BovxYweoSC6G3UjcsVJD65FLFTUjzUR0FXUmt0s/edit?usp=sharing
This CL doesn't wire it up yet to RPC or Wasm.
Next CLs will do.

Test: perfetto_unittests --gtest_filter=QueryResultSerializerTest.*
Change-Id: I08b7bb638fe4deabf41e14e30fc548aec9ab58e4
Bug: 159142289
12 files changed
tree: 40e0f46533983bab4d371db81bba7ca562fa9a85
  1. bazel/
  2. build_overrides/
  3. buildtools/
  4. debian/
  5. docs/
  6. examples/
  7. gn/
  8. include/
  9. infra/
  10. protos/
  11. src/
  12. test/
  13. tools/
  14. ui/
  15. .clang-format
  16. .clang-tidy
  17. .gitignore
  18. .gn
  19. .style.yapf
  20. Android.bp
  21. Android.bp.extras
  22. BUILD
  23. BUILD.extras
  24. BUILD.gn
  25. codereview.settings
  26. heapprofd.rc
  27. LICENSE
  28. METADATA
  29. MODULE_LICENSE_APACHE2
  30. OWNERS
  31. perfetto.rc
  32. PRESUBMIT.py
  33. README.chromium
  34. README.md
  35. TEST_MAPPING
  36. traced_perf.rc
  37. WORKSPACE
README.md

Perfetto - System profiling, app tracing and trace analysis

Perfetto is a production-grade open-source stack for performance instrumentation and trace analysis. It offers services and libraries and for recording system-level and app-level traces, native + java heap profiling, a library for analyzing traces using SQL and a web-based UI to visualize and explore multi-GB traces.

See https://perfetto.dev/docs or the /docs/ directory for documentation.