OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "storage/browser/blob/blob_memory_controller.h" | 5 #include "storage/browser/blob/blob_memory_controller.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <numeric> | 8 #include <numeric> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 934 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
945 | 945 |
946 // If we still have more blobs waiting and we're not waiting on more paging | 946 // If we still have more blobs waiting and we're not waiting on more paging |
947 // operations, schedule more. | 947 // operations, schedule more. |
948 MaybeScheduleEvictionUntilSystemHealthy( | 948 MaybeScheduleEvictionUntilSystemHealthy( |
949 base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE); | 949 base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE); |
950 } | 950 } |
951 | 951 |
952 void BlobMemoryController::OnMemoryPressure( | 952 void BlobMemoryController::OnMemoryPressure( |
953 base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level) { | 953 base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level) { |
954 auto time_from_last_evicion = base::TimeTicks::Now() - last_eviction_time_; | 954 auto time_from_last_evicion = base::TimeTicks::Now() - last_eviction_time_; |
955 if (time_from_last_evicion.InSeconds() < kMinSecondsForPressureEvictions) | 955 if (last_eviction_time_ != base::TimeTicks() && |
| 956 time_from_last_evicion.InSeconds() < kMinSecondsForPressureEvictions) { |
956 return; | 957 return; |
| 958 } |
957 | 959 |
958 MaybeScheduleEvictionUntilSystemHealthy(memory_pressure_level); | 960 MaybeScheduleEvictionUntilSystemHealthy(memory_pressure_level); |
959 } | 961 } |
960 | 962 |
961 FilePath BlobMemoryController::GenerateNextPageFileName() { | 963 FilePath BlobMemoryController::GenerateNextPageFileName() { |
962 std::string file_name = base::Uint64ToString(current_file_num_++); | 964 std::string file_name = base::Uint64ToString(current_file_num_++); |
963 return blob_storage_dir_.Append(FilePath::FromUTF8Unsafe(file_name)); | 965 return blob_storage_dir_.Append(FilePath::FromUTF8Unsafe(file_name)); |
964 } | 966 } |
965 | 967 |
966 void BlobMemoryController::RecordTracingCounters() const { | 968 void BlobMemoryController::RecordTracingCounters() const { |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1034 MaybeGrantPendingMemoryRequests(); | 1036 MaybeGrantPendingMemoryRequests(); |
1035 } | 1037 } |
1036 | 1038 |
1037 void BlobMemoryController::OnBlobFileDelete(uint64_t size, | 1039 void BlobMemoryController::OnBlobFileDelete(uint64_t size, |
1038 const FilePath& path) { | 1040 const FilePath& path) { |
1039 DCHECK_LE(size, disk_used_); | 1041 DCHECK_LE(size, disk_used_); |
1040 disk_used_ -= size; | 1042 disk_used_ -= size; |
1041 } | 1043 } |
1042 | 1044 |
1043 } // namespace storage | 1045 } // namespace storage |
OLD | NEW |