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

Side by Side Diff: chrome_frame/test/perf/chrome_frame_perftest.cc

Issue 2544003: Ensures that cold startup perf tests clear more DLLs. Helps bring results int... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #include "chrome_frame/test/perf/chrome_frame_perftest.h" 4 #include "chrome_frame/test/perf/chrome_frame_perftest.h"
5 5
6 #include <atlwin.h> 6 #include <atlwin.h>
7 #include <atlhost.h> 7 #include <atlhost.h>
8 #include <map> 8 #include <map>
9 #include <vector> 9 #include <vector>
10 #include <string> 10 #include <string>
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 virtual void SetUp() { 284 virtual void SetUp() {
285 SetConfigBool(kChromeFrameUnpinnedMode, true); 285 SetConfigBool(kChromeFrameUnpinnedMode, true);
286 ASSERT_TRUE(PathService::Get(chrome::DIR_APP, &dir_app_)); 286 ASSERT_TRUE(PathService::Get(chrome::DIR_APP, &dir_app_));
287 287
288 chrome_dll_ = dir_app_.Append(FILE_PATH_LITERAL("chrome.dll")); 288 chrome_dll_ = dir_app_.Append(FILE_PATH_LITERAL("chrome.dll"));
289 chrome_exe_ = dir_app_.Append( 289 chrome_exe_ = dir_app_.Append(
290 FilePath::FromWStringHack(chrome::kBrowserProcessExecutableName)); 290 FilePath::FromWStringHack(chrome::kBrowserProcessExecutableName));
291 chrome_frame_dll_ = dir_app_.Append(FILE_PATH_LITERAL("servers")); 291 chrome_frame_dll_ = dir_app_.Append(FILE_PATH_LITERAL("servers"));
292 chrome_frame_dll_ = chrome_frame_dll_.Append( 292 chrome_frame_dll_ = chrome_frame_dll_.Append(
293 FilePath::FromWStringHack(kChromeFrameDllName)); 293 FilePath::FromWStringHack(kChromeFrameDllName));
294 DLOG(INFO) << __FUNCTION__ << ": " << chrome_frame_dll_.value(); 294 icu_dll_ = dir_app_.Append(FILE_PATH_LITERAL("icudt42.dll"));
295 gears_dll_ = dir_app_.Append(FILE_PATH_LITERAL("gears.dll"));
296 avcodec52_dll_ = dir_app_.Append(FILE_PATH_LITERAL("avcodec-52.dll"));
297 avformat52_dll_ = dir_app_.Append(FILE_PATH_LITERAL("avformat-52.dll"));
298 avutil50_dll_ = dir_app_.Append(FILE_PATH_LITERAL("avutil-50.dll"));
295 } 299 }
296 virtual void TearDown() { 300 virtual void TearDown() {
297 DeleteConfigValue(kChromeFrameUnpinnedMode); 301 DeleteConfigValue(kChromeFrameUnpinnedMode);
298 } 302 }
299 303
300 // TODO(iyengar) 304 // TODO(iyengar)
301 // This function is similar to the RunStartupTest function used in chrome 305 // This function is similar to the RunStartupTest function used in chrome
302 // startup tests. Refactor into a common implementation. 306 // startup tests. Refactor into a common implementation.
303 void RunStartupTest(const char* graph, const char* trace, 307 void RunStartupTest(const char* graph, const char* trace,
304 const char* startup_url, bool test_cold, 308 const char* startup_url, bool test_cold,
305 int total_binaries, const FilePath binaries_to_evict[], 309 int total_binaries, const FilePath binaries_to_evict[],
306 bool important, bool ignore_cache_error) { 310 bool important, bool ignore_cache_error) {
307 const int kNumCycles = 20; 311 const int kNumCycles = 20;
308 312
309 startup_url_ = startup_url; 313 startup_url_ = startup_url;
310 314
311 TimeDelta timings[kNumCycles]; 315 TimeDelta timings[kNumCycles];
312 316
313 for (int i = 0; i < kNumCycles; ++i) { 317 for (int i = 0; i < kNumCycles; ++i) {
314 if (test_cold) { 318 if (test_cold) {
315 for (int binary_index = 0; binary_index < total_binaries; 319 for (int binary_index = 0; binary_index < total_binaries;
316 binary_index++) { 320 binary_index++) {
317 bool result = EvictFileFromSystemCacheWrapper( 321 bool result = EvictFileFromSystemCacheWrapper(
318 binaries_to_evict[binary_index]); 322 binaries_to_evict[binary_index]);
319 if (!ignore_cache_error) { 323 if (!ignore_cache_error) {
320 ASSERT_TRUE(result); 324 ASSERT_TRUE(result);
321 } else if (!result) { 325 } else if (!result) {
326 LOG(ERROR) << GetLastError();
322 printf("\nFailed to evict file %ls from cache. Not running test\n", 327 printf("\nFailed to evict file %ls from cache. Not running test\n",
323 binaries_to_evict[binary_index].value().c_str()); 328 binaries_to_evict[binary_index].value().c_str());
324 return; 329 return;
325 } 330 }
326 } 331 }
327 } 332 }
328 333
329 TimeTicks start_time, end_time; 334 TimeTicks start_time, end_time;
330 335
331 RunStartupTestImpl(&start_time, &end_time); 336 RunStartupTestImpl(&start_time, &end_time);
(...skipping 12 matching lines...) Expand all
344 for (int i = 0; i < kNumCycles; ++i) 349 for (int i = 0; i < kNumCycles; ++i)
345 StringAppendF(&times, "%.2f,", timings[i].InMillisecondsF()); 350 StringAppendF(&times, "%.2f,", timings[i].InMillisecondsF());
346 351
347 PrintResultList(graph, "", trace, times, "ms", important); 352 PrintResultList(graph, "", trace, times, "ms", important);
348 } 353 }
349 354
350 FilePath dir_app_; 355 FilePath dir_app_;
351 FilePath chrome_dll_; 356 FilePath chrome_dll_;
352 FilePath chrome_exe_; 357 FilePath chrome_exe_;
353 FilePath chrome_frame_dll_; 358 FilePath chrome_frame_dll_;
359 FilePath icu_dll_;
360 FilePath gears_dll_;
361 FilePath avcodec52_dll_;
362 FilePath avformat52_dll_;
363 FilePath avutil50_dll_;
354 364
355 protected: 365 protected:
356 // Individual startup tests should implement this function. 366 // Individual startup tests should implement this function.
357 virtual void RunStartupTestImpl(TimeTicks* start_time, 367 virtual void RunStartupTestImpl(TimeTicks* start_time,
358 TimeTicks* end_time) {} 368 TimeTicks* end_time) {}
359 369
360 // The host is torn down by this function. It should not be used after 370 // The host is torn down by this function. It should not be used after
361 // this function returns. 371 // this function returns.
362 static void ReleaseHostComReferences(CAxWindow& host) { 372 static void ReleaseHostComReferences(CAxWindow& host) {
363 CComPtr<IAxWinHostWindow> spWinHost; 373 CComPtr<IAxWinHostWindow> spWinHost;
(...skipping 553 matching lines...) Expand 10 before | Expand all | Expand 10 after
917 RunStartupTest("warm", "t", "about:blank", false /* cold */, 0, NULL, 927 RunStartupTest("warm", "t", "about:blank", false /* cold */, 0, NULL,
918 true /* important */, false); 928 true /* important */, false);
919 } 929 }
920 930
921 TEST_F(ChromeFrameBinariesLoadTest, PerfWarm) { 931 TEST_F(ChromeFrameBinariesLoadTest, PerfWarm) {
922 RunStartupTest("binary_load_warm", "t", "", false /* cold */, 0, NULL, 932 RunStartupTest("binary_load_warm", "t", "", false /* cold */, 0, NULL,
923 true /* important */, false); 933 true /* important */, false);
924 } 934 }
925 935
926 TEST_F(ChromeFrameStartupTestActiveX, PerfCold) { 936 TEST_F(ChromeFrameStartupTestActiveX, PerfCold) {
927 FilePath binaries_to_evict[] = {chrome_exe_, chrome_dll_, chrome_frame_dll_}; 937 FilePath binaries_to_evict[] = { gears_dll_, avcodec52_dll_,
938 avformat52_dll_, avutil50_dll_, chrome_exe_, chrome_dll_,
939 chrome_frame_dll_};
928 RunStartupTest("cold", "t", "about:blank", true /* cold */, 940 RunStartupTest("cold", "t", "about:blank", true /* cold */,
929 arraysize(binaries_to_evict), binaries_to_evict, 941 arraysize(binaries_to_evict), binaries_to_evict,
930 false /* not important */, false); 942 false /* not important */, false);
931 } 943 }
932 944
933 TEST_F(ChromeFrameBinariesLoadTest, PerfCold) { 945 TEST_F(ChromeFrameBinariesLoadTest, PerfCold) {
934 FilePath binaries_to_evict[] = {chrome_exe_, chrome_dll_, chrome_frame_dll_}; 946 FilePath binaries_to_evict[] = {chrome_exe_, chrome_dll_, chrome_frame_dll_};
935 RunStartupTest("binary_load_cold", "t", "", true /* cold */, 947 RunStartupTest("binary_load_cold", "t", "", true /* cold */,
936 arraysize(binaries_to_evict), binaries_to_evict, 948 arraysize(binaries_to_evict), binaries_to_evict,
937 false /* not important */, false); 949 false /* not important */, false);
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
1063 ASSERT_TRUE(silverlight_key.ReadValue(L"", &plugin_path)); 1075 ASSERT_TRUE(silverlight_key.ReadValue(L"", &plugin_path));
1064 ASSERT_FALSE(plugin_path.empty()); 1076 ASSERT_FALSE(plugin_path.empty());
1065 1077
1066 FilePath silverlight_path = FilePath::FromWStringHack(plugin_path); 1078 FilePath silverlight_path = FilePath::FromWStringHack(plugin_path);
1067 FilePath binaries_to_evict[] = {silverlight_path}; 1079 FilePath binaries_to_evict[] = {silverlight_path};
1068 1080
1069 RunStartupTest("creation_cold", "t_silverlight", "", true /* cold */, 1081 RunStartupTest("creation_cold", "t_silverlight", "", true /* cold */,
1070 arraysize(binaries_to_evict), binaries_to_evict, 1082 arraysize(binaries_to_evict), binaries_to_evict,
1071 false /* important */, true); 1083 false /* important */, true);
1072 } 1084 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698