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

Unified Diff: chrome/browser/task_manager/task_manager.cc

Issue 23523024: Fix and re-enable PrerenderTaskManager test (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Reorder functions Created 7 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
« no previous file with comments | « chrome/browser/task_manager/task_manager.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/task_manager/task_manager.cc
diff --git a/chrome/browser/task_manager/task_manager.cc b/chrome/browser/task_manager/task_manager.cc
index fcd4f30c15d191a2b5c47e00c5dd8bb7d93a8919..4d826a7d2e9f110b115f893718842685375087bf 100644
--- a/chrome/browser/task_manager/task_manager.cc
+++ b/chrome/browser/task_manager/task_manager.cc
@@ -1163,6 +1163,60 @@ void TaskManagerModel::ModelChanged() {
FOR_EACH_OBSERVER(TaskManagerModelObserver, observer_list_, OnModelChanged());
}
+void TaskManagerModel::Refresh() {
+ goat_salt_ = base::RandUint64();
+
+ per_resource_cache_.clear();
+ per_process_cache_.clear();
+
+ // Compute the CPU usage values.
+ // Note that we compute the CPU usage for all resources (instead of doing it
+ // lazily) as process_util::GetCPUUsage() returns the CPU usage since the last
+ // time it was called, and not calling it everytime would skew the value the
+ // next time it is retrieved (as it would be for more than 1 cycle).
+ for (ResourceList::iterator iter = resources_.begin();
+ iter != resources_.end(); ++iter) {
+ base::ProcessHandle process = (*iter)->GetProcess();
+ PerProcessValues& values(per_process_cache_[process]);
+ if (values.is_cpu_usage_valid)
+ continue;
+
+ values.is_cpu_usage_valid = true;
+ MetricsMap::iterator metrics_iter = metrics_map_.find(process);
+ DCHECK(metrics_iter != metrics_map_.end());
+ values.cpu_usage = metrics_iter->second->GetCPUUsage();
+ }
+
+ // Send a request to refresh GPU memory consumption values
+ RefreshVideoMemoryUsageStats();
+
+ // Compute the new network usage values.
+ base::TimeDelta update_time =
+ base::TimeDelta::FromMilliseconds(kUpdateTimeMs);
+ for (ResourceValueMap::iterator iter = current_byte_count_map_.begin();
+ iter != current_byte_count_map_.end(); ++iter) {
+ PerResourceValues* values = &(per_resource_cache_[iter->first]);
+ if (update_time > base::TimeDelta::FromSeconds(1))
+ values->network_usage = iter->second / update_time.InSeconds();
+ else
+ values->network_usage = iter->second * (1 / update_time.InSeconds());
+
+ // Then we reset the current byte count.
+ iter->second = 0;
+ }
+
+ // Let resources update themselves if they need to.
+ for (ResourceList::iterator iter = resources_.begin();
+ iter != resources_.end(); ++iter) {
+ (*iter)->Refresh();
+ }
+
+ if (!resources_.empty()) {
+ FOR_EACH_OBSERVER(TaskManagerModelObserver, observer_list_,
+ OnItemsChanged(0, ResourceCount()));
+ }
+}
+
void TaskManagerModel::NotifyResourceTypeStats(
base::ProcessId renderer_id,
const WebKit::WebCache::ResourceTypeStats& stats) {
@@ -1276,60 +1330,6 @@ void TaskManagerModel::RefreshCallback() {
base::TimeDelta::FromMilliseconds(kUpdateTimeMs));
}
-void TaskManagerModel::Refresh() {
- goat_salt_ = base::RandUint64();
-
- per_resource_cache_.clear();
- per_process_cache_.clear();
-
- // Compute the CPU usage values.
- // Note that we compute the CPU usage for all resources (instead of doing it
- // lazily) as process_util::GetCPUUsage() returns the CPU usage since the last
- // time it was called, and not calling it everytime would skew the value the
- // next time it is retrieved (as it would be for more than 1 cycle).
- for (ResourceList::iterator iter = resources_.begin();
- iter != resources_.end(); ++iter) {
- base::ProcessHandle process = (*iter)->GetProcess();
- PerProcessValues& values(per_process_cache_[process]);
- if (values.is_cpu_usage_valid)
- continue;
-
- values.is_cpu_usage_valid = true;
- MetricsMap::iterator metrics_iter = metrics_map_.find(process);
- DCHECK(metrics_iter != metrics_map_.end());
- values.cpu_usage = metrics_iter->second->GetCPUUsage();
- }
-
- // Send a request to refresh GPU memory consumption values
- RefreshVideoMemoryUsageStats();
-
- // Compute the new network usage values.
- base::TimeDelta update_time =
- base::TimeDelta::FromMilliseconds(kUpdateTimeMs);
- for (ResourceValueMap::iterator iter = current_byte_count_map_.begin();
- iter != current_byte_count_map_.end(); ++iter) {
- PerResourceValues* values = &(per_resource_cache_[iter->first]);
- if (update_time > base::TimeDelta::FromSeconds(1))
- values->network_usage = iter->second / update_time.InSeconds();
- else
- values->network_usage = iter->second * (1 / update_time.InSeconds());
-
- // Then we reset the current byte count.
- iter->second = 0;
- }
-
- // Let resources update themselves if they need to.
- for (ResourceList::iterator iter = resources_.begin();
- iter != resources_.end(); ++iter) {
- (*iter)->Refresh();
- }
-
- if (!resources_.empty()) {
- FOR_EACH_OBSERVER(TaskManagerModelObserver, observer_list_,
- OnItemsChanged(0, ResourceCount()));
- }
-}
-
void TaskManagerModel::RefreshVideoMemoryUsageStats() {
if (pending_video_memory_usage_stats_update_)
return;
« no previous file with comments | « chrome/browser/task_manager/task_manager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698