Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1151)

Unified Diff: components/metrics/call_stack_profile_metrics_provider.cc

Issue 2362493002: Stack sampling profiler: set process and thread information (Closed)
Patch Set: fix JankTimeBomb unit test Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/metrics/call_stack_profile_metrics_provider.cc
diff --git a/components/metrics/call_stack_profile_metrics_provider.cc b/components/metrics/call_stack_profile_metrics_provider.cc
index 1d228153b2ce551ff20f76655e6a5fd9166d018c..82e9b81f450e8c3ece4fb39100a9fdc79e673082 100644
--- a/components/metrics/call_stack_profile_metrics_provider.cc
+++ b/components/metrics/call_stack_profile_metrics_provider.cc
@@ -289,6 +289,84 @@ void CopyProfileToProto(
profile.sampling_period.InMilliseconds());
}
+// Translates CallStackProfileParams's process to the corresponding
+// execution context Process.
+Process ToExecutionContextProcess(CallStackProfileParams::Process process) {
+ switch (process) {
+ case CallStackProfileParams::UNKNOWN_PROCESS:
+ return UNKNOWN_PROCESS;
+ break;
sky 2016/09/21 22:06:16 No break after returns in these switches.
Mike Wittman 2016/09/21 22:26:21 Done.
+ case CallStackProfileParams::BROWSER_PROCESS:
+ return BROWSER_PROCESS;
+ break;
+ case CallStackProfileParams::RENDERER_PROCESS:
+ return RENDERER_PROCESS;
+ break;
+ case CallStackProfileParams::GPU_PROCESS:
+ return GPU_PROCESS;
+ break;
+ case CallStackProfileParams::UTILITY_PROCESS:
+ return UTILITY_PROCESS;
+ break;
+ case CallStackProfileParams::ZYGOTE_PROCESS:
+ return ZYGOTE_PROCESS;
+ break;
+ case CallStackProfileParams::SANDBOX_HELPER_PROCESS:
+ return SANDBOX_HELPER_PROCESS;
+ break;
+ case CallStackProfileParams::PPAPI_PLUGIN_PROCESS:
+ return PPAPI_PLUGIN_PROCESS;
+ break;
+ case CallStackProfileParams::PPAPI_BROKER_PROCESS:
+ return PPAPI_BROKER_PROCESS;
+ break;
+ }
+ NOTREACHED();
+ return UNKNOWN_PROCESS;
+}
+
+// Translates CallStackProfileParams's thread to the corresponding
+// SampledProfile TriggerEvent.
+Thread ToExecutionContextThread(CallStackProfileParams::Thread thread) {
+ switch (thread) {
+ case CallStackProfileParams::UNKNOWN_THREAD:
+ return UNKNOWN_THREAD;
+ break;
+ case CallStackProfileParams::UI_THREAD:
+ return UI_THREAD;
+ break;
+ case CallStackProfileParams::FILE_THREAD:
+ return FILE_THREAD;
+ break;
+ case CallStackProfileParams::FILE_USER_BLOCKING_THREAD:
+ return FILE_USER_BLOCKING_THREAD;
+ break;
+ case CallStackProfileParams::PROCESS_LAUNCHER_THREAD:
+ return PROCESS_LAUNCHER_THREAD;
+ break;
+ case CallStackProfileParams::CACHE_THREAD:
+ return CACHE_THREAD;
+ break;
+ case CallStackProfileParams::IO_THREAD:
+ return IO_THREAD;
+ break;
+ case CallStackProfileParams::DB_THREAD:
+ return DB_THREAD;
+ break;
+ case CallStackProfileParams::GPU_MAIN_THREAD:
+ return GPU_MAIN_THREAD;
+ break;
+ case CallStackProfileParams::RENDER_THREAD:
+ return RENDER_THREAD;
+ break;
+ case CallStackProfileParams::UTILITY_THREAD:
+ return UTILITY_THREAD;
+ break;
+ }
+ NOTREACHED();
+ return UNKNOWN_THREAD;
+}
+
// Translates CallStackProfileParams's trigger to the corresponding
// SampledProfile TriggerEvent.
SampledProfile::TriggerEvent ToSampledProfileTriggerEvent(
@@ -367,6 +445,10 @@ void CallStackProfileMetricsProvider::ProvideGeneralMetrics(
for (const StackSamplingProfiler::CallStackProfile& profile :
profiles_state.profiles) {
SampledProfile* sampled_profile = uma_proto->add_sampled_profile();
+ sampled_profile->set_process(ToExecutionContextProcess(
+ profiles_state.params.process));
+ sampled_profile->set_thread(ToExecutionContextThread(
+ profiles_state.params.thread));
sampled_profile->set_trigger_event(ToSampledProfileTriggerEvent(
profiles_state.params.trigger));
CopyProfileToProto(profile, profiles_state.params.ordering_spec,

Powered by Google App Engine
This is Rietveld 408576698