tracing: Stream processing for some importers

This implements stream processing for trace event importer, gzip
importer, and Linux trace event importer.

A tr.useTraceStreams flag is introduced and is disabled by default,
for now, until all importers support stream processing and the
performance is reasonable.

I tested that if I set tr.useTraceStream to true, I can successfully
run trace_processor/bin/process_traces on a ~700M trace file. However,
it is slow. The source of slowness is oboe.js itself. After a little
bit investigation, I think there are some optimizations that can be
done in oboe.js, which I will send in future CLs.

Note that this is still with the assumption that traces fit in memory. If we
want to get rid of this assumption in the future:
- d8 should support reading chunks of data from a file.
- tr.b.TraceStream read methods should return promises.
- oboe.js should support returning just the start and end position of a value
  instead of the value itself, for values that do not fit in memory.

BUG=catapult:#2826

Review-Url: https://codereview.chromium.org/2755943002
11 files changed
tree: 760bbac17e3125f9fedb95bd28e1c51f679d5529
  1. bin/
  2. catapult_base/
  3. catapult_build/
  4. common/
  5. dashboard/
  6. dependency_manager/
  7. devil/
  8. docs/
  9. experimental/
  10. firefighter/
  11. hooks/
  12. infra/
  13. netlog_viewer/
  14. systrace/
  15. telemetry/
  16. third_party/
  17. trace_processor/
  18. tracing/
  19. .eslintignore
  20. .eslintrc
  21. .gitignore
  22. AUTHORS
  23. codereview.settings
  24. CONTRIBUTING.md
  25. LICENSE
  26. navbar.md
  27. OWNERS
  28. PRESUBMIT.py
  29. pylintrc
  30. README.md
  31. WATCHLISTS
README.md

Catapult

Catapult is the home for several performance tools that span from gathering, displaying and analyzing performance data. This includes:

These tools were created by Chromium developers for performance analysis, testing, and monitoring of Chrome, but they can also be used for analyzing and monitoring websites, and eventually Android apps.

Contributing

Please see our contributor's guide

Current build status