trace_processor: remove RowId type from trace_processor

This CL removes the RowId type completely from trace processor. Initially
the type was introduced to uniquely identify a row in trace processor
and to use as a join key. However, with the advent of db tables, we no
longer need this ability so we can get rid of the concept.

As there is still a few dependencies on RowId, this CL also does the
following:
1. Changes ArgsTracker to use TableId + row number to identify which
   row an arg belongs to.
2. Add the concept of a BoundInserter to ArgsTracker. A BoundInserter
   is a class which allows callers to add args to the args tracker without
   specifying the table and row - this is because when the BoundInserter
   is created, it is assigned to a Row. By doing this, we reduce the amount
   of complexity throughout trace processor significantly when dealing with
   args
3. Change SliceTracker to use BoundInserter.
4. Change all callsites throughout trace processor to use BoundInserter
   and ArgsTracker properly.

Change-Id: I5034ebb6e47af1387dec7f4d8919f91e8dd43c97
27 files changed
tree: 00495be2175f72cb557af08b8b2a7fb27e373b46
  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. LICENSE
  26. MODULE_LICENSE_APACHE2
  27. NOTICE
  28. OWNERS
  29. perfetto.rc
  30. PRESUBMIT.py
  31. README.chromium
  32. README.md
  33. TEST_MAPPING
  34. 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.

Contributing

See /docs/contributing.md for instructions.

The source-of-truth repo is Android's Gerrit. The GitHub repo is a read-only mirror.

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.