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

Side by Side Diff: content/browser/memory/memory_monitor_win.cc

Issue 2558043007: Fix free memory calculation. (Closed)
Patch Set: Fix integer overflow in unittest. Created 3 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/memory/memory_monitor_win.h" 5 #include "content/browser/memory/memory_monitor_win.h"
6 6
7 #include "base/process/process_metrics.h" 7 #include "base/process/process_metrics.h"
8 8
9 // TODO(chrisha): Implement a mechanism for observing swapping, and updating the 9 // TODO(chrisha): Implement a mechanism for observing swapping, and updating the
10 // memory threshold on a per machine basis. 10 // memory threshold on a per machine basis.
(...skipping 26 matching lines...) Expand all
37 // available memory, paging until that is the case. 37 // available memory, paging until that is the case.
38 const int MemoryMonitorWin::kLargeMemoryTargetFreeMB = 400; 38 const int MemoryMonitorWin::kLargeMemoryTargetFreeMB = 400;
39 39
40 MemoryMonitorWin::MemoryMonitorWin(MemoryMonitorDelegate* delegate, 40 MemoryMonitorWin::MemoryMonitorWin(MemoryMonitorDelegate* delegate,
41 int target_free_mb) 41 int target_free_mb)
42 : delegate_(delegate), target_free_mb_(target_free_mb) {} 42 : delegate_(delegate), target_free_mb_(target_free_mb) {}
43 43
44 int MemoryMonitorWin::GetFreeMemoryUntilCriticalMB() { 44 int MemoryMonitorWin::GetFreeMemoryUntilCriticalMB() {
45 base::SystemMemoryInfoKB mem_info = {}; 45 base::SystemMemoryInfoKB mem_info = {};
46 delegate_->GetSystemMemoryInfo(&mem_info); 46 delegate_->GetSystemMemoryInfo(&mem_info);
47 int free_mb = mem_info.free / kKBperMB; 47 int free_mb = mem_info.avail_phys / kKBperMB;
48 free_mb -= target_free_mb_; 48 free_mb -= target_free_mb_;
49 return free_mb; 49 return free_mb;
50 } 50 }
51 51
52 // static 52 // static
53 std::unique_ptr<MemoryMonitorWin> MemoryMonitorWin::Create( 53 std::unique_ptr<MemoryMonitorWin> MemoryMonitorWin::Create(
54 MemoryMonitorDelegate* delegate) { 54 MemoryMonitorDelegate* delegate) {
55 return std::unique_ptr<MemoryMonitorWin>(new MemoryMonitorWin( 55 return std::unique_ptr<MemoryMonitorWin>(new MemoryMonitorWin(
56 delegate, GetTargetFreeMB(delegate))); 56 delegate, GetTargetFreeMB(delegate)));
57 } 57 }
(...skipping 12 matching lines...) Expand all
70 return MemoryMonitorWin::kLargeMemoryTargetFreeMB; 70 return MemoryMonitorWin::kLargeMemoryTargetFreeMB;
71 return MemoryMonitorWin::kSmallMemoryTargetFreeMB; 71 return MemoryMonitorWin::kSmallMemoryTargetFreeMB;
72 } 72 }
73 73
74 // Implementation of factory function defined in memory_monitor.h. 74 // Implementation of factory function defined in memory_monitor.h.
75 std::unique_ptr<MemoryMonitor> CreateMemoryMonitor() { 75 std::unique_ptr<MemoryMonitor> CreateMemoryMonitor() {
76 return MemoryMonitorWin::Create(&g_memory_monitor_win_delegate); 76 return MemoryMonitorWin::Create(&g_memory_monitor_win_delegate);
77 } 77 }
78 78
79 } // namespace content 79 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698