Chromium Code Reviews| Index: chrome/browser/task_manager/sampling/task_manager_impl.cc |
| diff --git a/chrome/browser/task_manager/sampling/task_manager_impl.cc b/chrome/browser/task_manager/sampling/task_manager_impl.cc |
| index 8d12ca5a5bd60b042b9e5627c9f17cc5e8c4200a..46a8ed017ec0455263f578478e8732b45bc94f52 100644 |
| --- a/chrome/browser/task_manager/sampling/task_manager_impl.cc |
| +++ b/chrome/browser/task_manager/sampling/task_manager_impl.cc |
| @@ -10,6 +10,7 @@ |
| #include <unordered_set> |
| #include <vector> |
| +#include "base/bit_cast.h" |
| #include "base/command_line.h" |
| #include "base/containers/adapters.h" |
| #include "build/build_config.h" |
| @@ -93,6 +94,29 @@ double TaskManagerImpl::GetCpuUsage(TaskId task_id) const { |
| return GetTaskGroupByTaskId(task_id)->cpu_usage(); |
| } |
| +base::Time TaskManagerImpl::GetStartTime(TaskId task_id) const { |
| +#if defined(OS_WIN) |
| + uint64_t time_in_100ns = GetTaskGroupByTaskId(task_id)->start_time(); |
| + if (time_in_100ns == 0) |
| + return base::Time(); |
| + FILETIME ft = bit_cast<FILETIME, int64_t>(time_in_100ns); |
| + return base::Time::FromFileTime(ft); |
|
afakhry
2016/12/22 00:28:14
I'm wondering why we don't do this calculation in
chengx
2016/12/22 21:42:55
Thanks for the suggestion! I have moved the ticks-
|
| +#else |
| + return base::Time(); |
| +#endif |
| +} |
| + |
| +base::TimeDelta TaskManagerImpl::GetCpuTime(TaskId task_id) const { |
| +#if defined(OS_WIN) |
| + uint64_t time_in_100ns = GetTaskGroupByTaskId(task_id)->cpu_time(); |
| + if (time_in_100ns == 0) |
| + return base::TimeDelta(); |
| + return base::TimeDelta::FromMicroseconds(time_in_100ns / 10); |
| +#else |
| + return base::TimeDelta(); |
| +#endif |
| +} |
| + |
| int64_t TaskManagerImpl::GetPhysicalMemoryUsage(TaskId task_id) const { |
| return GetTaskGroupByTaskId(task_id)->physical_bytes(); |
| } |