Introducing phased profiling framework.
commit379d7fe794b4a200e08ac3f23c69184edef085f7
authorvadimt <vadimt@chromium.org>
Wed, 1 Apr 2015 00:09:35 +0000 (31 17:09 -0700)
committerCommit bot <commit-bot@chromium.org>
Wed, 1 Apr 2015 00:10:18 +0000 (1 00:10 +0000)
tree82f80ce8e1c9253f027b7c750ef2abbb7431b7d8
parenta7d16cadb7ca6e8d505ae37be437a4ad103d51bc
Introducing phased profiling framework.

TrackingSynchronizer can send a "phase completed" message to all processes. Their ThreadData's make a snapshot of task deaths and store it in a static map, associating with the number of the completed phase. They also clean the death data.

When requested to return a tasks snapshot, ThreadData returns that saved map, adding a snapshot of current task deaths as a separate "current" phase.

The rest of code was transformed to work with the map of snapshots instead of a single snapshot.

BUG=456354

Review URL: https://codereview.chromium.org/985773002

Cr-Commit-Position: refs/heads/master@{#323151}
35 files changed:
base/tracked_objects.cc
base/tracked_objects.h
base/tracked_objects_unittest.cc
chrome/browser/chrome_browser_main.cc
chrome/browser/metrics/chrome_metrics_service_client.cc
chrome/browser/metrics/chrome_metrics_service_client.h
chrome/browser/task_profiler/task_profiler_data_serializer.cc
chrome/browser/task_profiler/task_profiler_data_serializer.h
chrome/browser/task_profiler/task_profiler_data_serializer_unittest.cc
chrome/browser/ui/webui/profiler_ui.cc
chrome/browser/ui/webui/profiler_ui.h
components/components_tests.gyp
components/metrics/BUILD.gn
components/metrics/metrics_log.h
components/metrics/profiler/DEPS
components/metrics/profiler/profiler_metrics_provider.cc
components/metrics/profiler/profiler_metrics_provider.h
components/metrics/profiler/profiler_metrics_provider_unittest.cc
components/metrics/profiler/tracking_synchronizer.cc
components/metrics/profiler/tracking_synchronizer.h
components/metrics/profiler/tracking_synchronizer_observer.h
components/metrics/profiler/tracking_synchronizer_unittest.cc [new file with mode: 0644]
components/metrics/proto/profiler_event.proto
components/nacl/browser/nacl_broker_host_win.cc
components/nacl/browser/nacl_process_host.cc
content/browser/browser_child_process_host_impl.cc
content/browser/browser_child_process_host_impl.h
content/browser/profiler_controller_impl.cc
content/browser/profiler_controller_impl.h
content/browser/profiler_message_filter.cc
content/browser/profiler_message_filter.h
content/child/child_thread_impl.cc
content/common/child_process_messages.h
content/public/browser/browser_child_process_host.h
content/public/browser/profiler_subscriber.h