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

Unified Diff: components/metrics/call_stack_profile_metrics_provider.cc

Issue 2362493002: Stack sampling profiler: set process and thread information (Closed)
Patch Set: address comments 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..3dc55b9ea6d00f0a571cd4bcbb528867f03f6a9f 100644
--- a/components/metrics/call_stack_profile_metrics_provider.cc
+++ b/components/metrics/call_stack_profile_metrics_provider.cc
@@ -289,6 +289,64 @@ 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;
+ case CallStackProfileParams::BROWSER_PROCESS:
+ return BROWSER_PROCESS;
+ case CallStackProfileParams::RENDERER_PROCESS:
+ return RENDERER_PROCESS;
+ case CallStackProfileParams::GPU_PROCESS:
+ return GPU_PROCESS;
+ case CallStackProfileParams::UTILITY_PROCESS:
+ return UTILITY_PROCESS;
+ case CallStackProfileParams::ZYGOTE_PROCESS:
+ return ZYGOTE_PROCESS;
+ case CallStackProfileParams::SANDBOX_HELPER_PROCESS:
+ return SANDBOX_HELPER_PROCESS;
+ case CallStackProfileParams::PPAPI_PLUGIN_PROCESS:
+ return PPAPI_PLUGIN_PROCESS;
+ case CallStackProfileParams::PPAPI_BROKER_PROCESS:
+ return PPAPI_BROKER_PROCESS;
+ }
+ 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;
+ case CallStackProfileParams::UI_THREAD:
+ return UI_THREAD;
+ case CallStackProfileParams::FILE_THREAD:
+ return FILE_THREAD;
+ case CallStackProfileParams::FILE_USER_BLOCKING_THREAD:
+ return FILE_USER_BLOCKING_THREAD;
+ case CallStackProfileParams::PROCESS_LAUNCHER_THREAD:
+ return PROCESS_LAUNCHER_THREAD;
+ case CallStackProfileParams::CACHE_THREAD:
+ return CACHE_THREAD;
+ case CallStackProfileParams::IO_THREAD:
+ return IO_THREAD;
+ case CallStackProfileParams::DB_THREAD:
+ return DB_THREAD;
+ case CallStackProfileParams::GPU_MAIN_THREAD:
+ return GPU_MAIN_THREAD;
+ case CallStackProfileParams::RENDER_THREAD:
+ return RENDER_THREAD;
+ case CallStackProfileParams::UTILITY_THREAD:
+ return UTILITY_THREAD;
+ }
+ NOTREACHED();
+ return UNKNOWN_THREAD;
+}
+
// Translates CallStackProfileParams's trigger to the corresponding
// SampledProfile TriggerEvent.
SampledProfile::TriggerEvent ToSampledProfileTriggerEvent(
@@ -296,16 +354,12 @@ SampledProfile::TriggerEvent ToSampledProfileTriggerEvent(
switch (trigger) {
case CallStackProfileParams::UNKNOWN:
return SampledProfile::UNKNOWN_TRIGGER_EVENT;
- break;
case CallStackProfileParams::PROCESS_STARTUP:
return SampledProfile::PROCESS_STARTUP;
- break;
case CallStackProfileParams::JANKY_TASK:
return SampledProfile::JANKY_TASK;
- break;
case CallStackProfileParams::THREAD_HUNG:
return SampledProfile::THREAD_HUNG;
- break;
}
NOTREACHED();
return SampledProfile::UNKNOWN_TRIGGER_EVENT;
@@ -367,6 +421,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,
« no previous file with comments | « components/metrics/call_stack_profile_collector.cc ('k') | components/metrics/call_stack_profile_metrics_provider_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698