trace_processor: support inserting base::Optional into columns

This CL adds support for inserting null values into column. Until this
point, while SparseVector had support for inserting nulls, we weren't
actually making use of that support and instead using it as dense data
strucutre.

As part of doing this, change non-base::Optional types to instead use a
std::deque as a backing structure - this will cut some of the
lookup/filter overhead for these columns.

Bug: 135177627
Change-Id: I2501f67b760f949a70a0f638c88353c4c7d4cf88
4 files changed
tree: 9d80a87234090da50536f30a7cbd62e2ad6303de
  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. Android.bp
  17. Android.bp.extras
  18. BUILD
  19. BUILD.extras
  20. BUILD.gn
  21. codereview.settings
  22. heapprofd.rc
  23. MODULE_LICENSE_APACHE2
  24. NOTICE
  25. OWNERS
  26. perfetto.rc
  27. PRESUBMIT.py
  28. README.chromium
  29. README.md
  30. 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.