[Reland] perfetto: merge TaskRunnerThread and base::ThreadTaskRunner

This CL folds the functionality of TaskRunnerThread into
ThreadTaskRunner. Both classes performed essentially the same job.

As ThreadTaskRunner is in base and also has a fix for a subtle
initialization race, we keep that implementation. We just port the
GetThreadCPUTimeNs function which we need for some benchmark code.

We also remove the complex delegate system and replace instead with
wrapper classes of ThreadTaskRunner which each initalize the appropriate
producer/service correctly.

The orignal CL broke CTS build - this patch also changes the jni dep to
be an autogenerated cc file instead of relying on manually updating the
Android.bp.extras

Change-Id: Ia34d7b4a50822692d1c0123455ddd432357507d7
18 files changed
tree: 12aea5a041eef046e7ca2f972b86a1735e9b8393
  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.