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

Side by Side Diff: chrome/renderer/chrome_render_process_observer.cc

Issue 7607009: Revert 96054 - Enable tcmalloc profiling and heap dump. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 4 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 | « chrome/renderer/chrome_render_process_observer.h ('k') | 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/renderer/chrome_render_process_observer.h" 5 #include "chrome/renderer/chrome_render_process_observer.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/metrics/field_trial.h" 9 #include "base/metrics/field_trial.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 15 matching lines...) Expand all
26 #include "content/renderer/render_thread.h" 26 #include "content/renderer/render_thread.h"
27 #include "content/renderer/render_view.h" 27 #include "content/renderer/render_view.h"
28 #include "content/renderer/render_view_visitor.h" 28 #include "content/renderer/render_view_visitor.h"
29 #include "crypto/nss_util.h" 29 #include "crypto/nss_util.h"
30 #include "media/base/media.h" 30 #include "media/base/media.h"
31 #include "media/base/media_switches.h" 31 #include "media/base/media_switches.h"
32 #include "net/base/net_errors.h" 32 #include "net/base/net_errors.h"
33 #include "net/base/net_module.h" 33 #include "net/base/net_module.h"
34 #include "third_party/sqlite/sqlite3.h" 34 #include "third_party/sqlite/sqlite3.h"
35 #include "third_party/tcmalloc/chromium/src/google/malloc_extension.h" 35 #include "third_party/tcmalloc/chromium/src/google/malloc_extension.h"
36 #include "third_party/tcmalloc/chromium/src/google/heap-profiler.h"
37 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h" 36 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h"
38 #include "third_party/WebKit/Source/WebKit/chromium/public/WebCache.h" 37 #include "third_party/WebKit/Source/WebKit/chromium/public/WebCache.h"
39 #include "third_party/WebKit/Source/WebKit/chromium/public/WebCrossOriginPreflig htResultCache.h" 38 #include "third_party/WebKit/Source/WebKit/chromium/public/WebCrossOriginPreflig htResultCache.h"
40 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFontCache.h" 39 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFontCache.h"
41 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" 40 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
42 #include "third_party/WebKit/Source/WebKit/chromium/public/WebRuntimeFeatures.h" 41 #include "third_party/WebKit/Source/WebKit/chromium/public/WebRuntimeFeatures.h"
43 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" 42 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
44 #include "v8/include/v8.h" 43 #include "v8/include/v8.h"
45 44
46 #if defined(OS_WIN) 45 #if defined(OS_WIN)
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 IPC_MESSAGE_HANDLER(ViewMsg_SetIsIncognitoProcess, OnSetIsIncognitoProcess) 400 IPC_MESSAGE_HANDLER(ViewMsg_SetIsIncognitoProcess, OnSetIsIncognitoProcess)
402 IPC_MESSAGE_HANDLER(ViewMsg_SetDefaultContentSettings, 401 IPC_MESSAGE_HANDLER(ViewMsg_SetDefaultContentSettings,
403 OnSetDefaultContentSettings) 402 OnSetDefaultContentSettings)
404 IPC_MESSAGE_HANDLER(ViewMsg_SetContentSettingsForCurrentURL, 403 IPC_MESSAGE_HANDLER(ViewMsg_SetContentSettingsForCurrentURL,
405 OnSetContentSettingsForCurrentURL) 404 OnSetContentSettingsForCurrentURL)
406 IPC_MESSAGE_HANDLER(ViewMsg_SetCacheCapacities, OnSetCacheCapacities) 405 IPC_MESSAGE_HANDLER(ViewMsg_SetCacheCapacities, OnSetCacheCapacities)
407 IPC_MESSAGE_HANDLER(ViewMsg_ClearCache, OnClearCache) 406 IPC_MESSAGE_HANDLER(ViewMsg_ClearCache, OnClearCache)
408 IPC_MESSAGE_HANDLER(ViewMsg_SetFieldTrialGroup, OnSetFieldTrialGroup) 407 IPC_MESSAGE_HANDLER(ViewMsg_SetFieldTrialGroup, OnSetFieldTrialGroup)
409 #if defined(USE_TCMALLOC) 408 #if defined(USE_TCMALLOC)
410 IPC_MESSAGE_HANDLER(ViewMsg_GetRendererTcmalloc, OnGetRendererTcmalloc) 409 IPC_MESSAGE_HANDLER(ViewMsg_GetRendererTcmalloc, OnGetRendererTcmalloc)
411 IPC_MESSAGE_HANDLER(ViewMsg_SetTcmallocHeapProfiling,
412 OnSetTcmallocHeapProfiling)
413 IPC_MESSAGE_HANDLER(ViewMsg_WriteTcmallocHeapProfile,
414 OnWriteTcmallocHeapProfile)
415 #endif 410 #endif
416 IPC_MESSAGE_HANDLER(ViewMsg_GetV8HeapStats, OnGetV8HeapStats) 411 IPC_MESSAGE_HANDLER(ViewMsg_GetV8HeapStats, OnGetV8HeapStats)
417 IPC_MESSAGE_HANDLER(ViewMsg_GetCacheResourceStats, OnGetCacheResourceStats) 412 IPC_MESSAGE_HANDLER(ViewMsg_GetCacheResourceStats, OnGetCacheResourceStats)
418 IPC_MESSAGE_HANDLER(ViewMsg_PurgeMemory, OnPurgeMemory) 413 IPC_MESSAGE_HANDLER(ViewMsg_PurgeMemory, OnPurgeMemory)
419 IPC_MESSAGE_UNHANDLED(handled = false) 414 IPC_MESSAGE_UNHANDLED(handled = false)
420 IPC_END_MESSAGE_MAP() 415 IPC_END_MESSAGE_MAP()
421 return handled; 416 return handled;
422 } 417 }
423 418
424 void ChromeRenderProcessObserver::WebKitInitialized() { 419 void ChromeRenderProcessObserver::WebKitInitialized() {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
456 void ChromeRenderProcessObserver::OnGetCacheResourceStats() { 451 void ChromeRenderProcessObserver::OnGetCacheResourceStats() {
457 WebCache::ResourceTypeStats stats; 452 WebCache::ResourceTypeStats stats;
458 WebCache::getResourceTypeStats(&stats); 453 WebCache::getResourceTypeStats(&stats);
459 Send(new ViewHostMsg_ResourceTypeStats(stats)); 454 Send(new ViewHostMsg_ResourceTypeStats(stats));
460 } 455 }
461 456
462 #if defined(USE_TCMALLOC) 457 #if defined(USE_TCMALLOC)
463 void ChromeRenderProcessObserver::OnGetRendererTcmalloc() { 458 void ChromeRenderProcessObserver::OnGetRendererTcmalloc() {
464 std::string result; 459 std::string result;
465 char buffer[1024 * 32]; 460 char buffer[1024 * 32];
461 base::ProcessId pid = base::GetCurrentProcId();
466 MallocExtension::instance()->GetStats(buffer, sizeof(buffer)); 462 MallocExtension::instance()->GetStats(buffer, sizeof(buffer));
467 result.append(buffer); 463 result.append(buffer);
468 Send(new ViewHostMsg_RendererTcmalloc(result)); 464 Send(new ViewHostMsg_RendererTcmalloc(pid, result));
469 } 465 }
470
471 void ChromeRenderProcessObserver::OnSetTcmallocHeapProfiling(
472 bool profiling, const std::string& filename_prefix) {
473 if (profiling)
474 HeapProfilerStart(filename_prefix.c_str());
475 else
476 HeapProfilerStop();
477 }
478
479 void ChromeRenderProcessObserver::OnWriteTcmallocHeapProfile(
480 const FilePath::StringType& filename) {
481 if (!IsHeapProfilerRunning())
482 return;
483 char* profile = GetHeapProfile();
484 if (!profile) {
485 LOG(WARNING) << "Unable to get heap profile.";
486 return;
487 }
488 // The render process can not write to a file, so copy the result into
489 // a string and pass it to the handler (which runs on the browser host).
490 std::string result(profile);
491 delete profile;
492 Send(new ViewHostMsg_WriteTcmallocHeapProfile_ACK(filename, result));
493 }
494
495 #endif 466 #endif
496 467
497 void ChromeRenderProcessObserver::OnSetFieldTrialGroup( 468 void ChromeRenderProcessObserver::OnSetFieldTrialGroup(
498 const std::string& field_trial_name, 469 const std::string& field_trial_name,
499 const std::string& group_name) { 470 const std::string& group_name) {
500 base::FieldTrialList::CreateFieldTrial(field_trial_name, group_name); 471 base::FieldTrialList::CreateFieldTrial(field_trial_name, group_name);
501 } 472 }
502 473
503 void ChromeRenderProcessObserver::OnGetV8HeapStats() { 474 void ChromeRenderProcessObserver::OnGetV8HeapStats() {
504 v8::HeapStatistics heap_stats; 475 v8::HeapStatistics heap_stats;
(...skipping 26 matching lines...) Expand all
531 } 502 }
532 503
533 #if !defined(OS_MACOSX) && defined(USE_TCMALLOC) 504 #if !defined(OS_MACOSX) && defined(USE_TCMALLOC)
534 // Tell tcmalloc to release any free pages it's still holding. 505 // Tell tcmalloc to release any free pages it's still holding.
535 MallocExtension::instance()->ReleaseFreeMemory(); 506 MallocExtension::instance()->ReleaseFreeMemory();
536 #endif 507 #endif
537 508
538 if (client_) 509 if (client_)
539 client_->OnPurgeMemory(); 510 client_->OnPurgeMemory();
540 } 511 }
OLDNEW
« no previous file with comments | « chrome/renderer/chrome_render_process_observer.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698