| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/file_path.h" | 8 #include "base/file_path.h" |
| 9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
| 10 #include "base/perftimer.h" | 10 #include "base/perftimer.h" |
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 200 // Creating and deleting "entries" on a block-file is something quite frequent | 200 // Creating and deleting "entries" on a block-file is something quite frequent |
| 201 // (after all, almost everything is stored on block files). The operation is | 201 // (after all, almost everything is stored on block files). The operation is |
| 202 // almost free when the file is empty, but can be expensive if the file gets | 202 // almost free when the file is empty, but can be expensive if the file gets |
| 203 // fragmented, or if we have multiple files. This test measures that scenario, | 203 // fragmented, or if we have multiple files. This test measures that scenario, |
| 204 // by using multiple, highly fragmented files. | 204 // by using multiple, highly fragmented files. |
| 205 TEST_F(DiskCacheTest, BlockFilesPerformance) { | 205 TEST_F(DiskCacheTest, BlockFilesPerformance) { |
| 206 MessageLoopForIO message_loop; | 206 MessageLoopForIO message_loop; |
| 207 | 207 |
| 208 ScopedTestCache test_cache; | 208 ScopedTestCache test_cache; |
| 209 | 209 |
| 210 disk_cache::BlockFiles files(test_cache.path_wstring()); | 210 disk_cache::BlockFiles files(test_cache.path()); |
| 211 ASSERT_TRUE(files.Init(true)); | 211 ASSERT_TRUE(files.Init(true)); |
| 212 | 212 |
| 213 int seed = static_cast<int>(Time::Now().ToInternalValue()); | 213 int seed = static_cast<int>(Time::Now().ToInternalValue()); |
| 214 srand(seed); | 214 srand(seed); |
| 215 | 215 |
| 216 const int kNumEntries = 60000; | 216 const int kNumEntries = 60000; |
| 217 disk_cache::Addr* address = new disk_cache::Addr[kNumEntries]; | 217 disk_cache::Addr* address = new disk_cache::Addr[kNumEntries]; |
| 218 | 218 |
| 219 PerfTimeLogger timer1("Fill three block-files"); | 219 PerfTimeLogger timer1("Fill three block-files"); |
| 220 | 220 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 234 | 234 |
| 235 files.DeleteBlock(address[entry], false); | 235 files.DeleteBlock(address[entry], false); |
| 236 EXPECT_TRUE(files.CreateBlock(disk_cache::RANKINGS, BlockSize(), | 236 EXPECT_TRUE(files.CreateBlock(disk_cache::RANKINGS, BlockSize(), |
| 237 &address[entry])); | 237 &address[entry])); |
| 238 } | 238 } |
| 239 | 239 |
| 240 timer2.Done(); | 240 timer2.Done(); |
| 241 MessageLoop::current()->RunAllPending(); | 241 MessageLoop::current()->RunAllPending(); |
| 242 delete[] address; | 242 delete[] address; |
| 243 } | 243 } |
| OLD | NEW |