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

Side by Side Diff: base/trace_event/memory_dump_manager.cc

Issue 1308443002: Reland of "[tracing] Add browser-side tests for memory dumps." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase onto https://crrev.com/1289793007 Created 5 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "base/trace_event/memory_dump_manager.h" 5 #include "base/trace_event/memory_dump_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/atomic_sequence_num.h" 9 #include "base/atomic_sequence_num.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 if (instance) 90 if (instance)
91 instance->skip_core_dumpers_auto_registration_for_testing_ = true; 91 instance->skip_core_dumpers_auto_registration_for_testing_ = true;
92 g_instance_for_testing = instance; 92 g_instance_for_testing = instance;
93 } 93 }
94 94
95 MemoryDumpManager::MemoryDumpManager() 95 MemoryDumpManager::MemoryDumpManager()
96 : delegate_(nullptr), 96 : delegate_(nullptr),
97 memory_tracing_enabled_(0), 97 memory_tracing_enabled_(0),
98 tracing_process_id_(kInvalidTracingProcessId), 98 tracing_process_id_(kInvalidTracingProcessId),
99 system_allocator_pool_name_(nullptr), 99 system_allocator_pool_name_(nullptr),
100 skip_core_dumpers_auto_registration_for_testing_(false) { 100 skip_core_dumpers_auto_registration_for_testing_(false),
101 disable_periodic_dumps_for_testing_(false) {
101 g_next_guid.GetNext(); // Make sure that first guid is not zero. 102 g_next_guid.GetNext(); // Make sure that first guid is not zero.
102 } 103 }
103 104
104 MemoryDumpManager::~MemoryDumpManager() { 105 MemoryDumpManager::~MemoryDumpManager() {
105 base::trace_event::TraceLog::GetInstance()->RemoveEnabledStateObserver(this); 106 base::trace_event::TraceLog::GetInstance()->RemoveEnabledStateObserver(this);
106 } 107 }
107 108
108 void MemoryDumpManager::Initialize() { 109 void MemoryDumpManager::Initialize() {
109 TRACE_EVENT0(kTraceCategory, "init"); // Add to trace-viewer category list. 110 TRACE_EVENT0(kTraceCategory, "init"); // Add to trace-viewer category list.
110 trace_event::TraceLog::GetInstance()->AddEnabledStateObserver(this); 111 trace_event::TraceLog::GetInstance()->AddEnabledStateObserver(this);
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 for (auto it = dump_providers_.begin(); it != dump_providers_.end(); ++it) { 417 for (auto it = dump_providers_.begin(); it != dump_providers_.end(); ++it) {
417 it->disabled = false; 418 it->disabled = false;
418 it->consecutive_failures = 0; 419 it->consecutive_failures = 0;
419 } 420 }
420 421
421 subtle::NoBarrier_Store(&memory_tracing_enabled_, 1); 422 subtle::NoBarrier_Store(&memory_tracing_enabled_, 1);
422 423
423 // TODO(primiano): This is a temporary hack to disable periodic memory dumps 424 // TODO(primiano): This is a temporary hack to disable periodic memory dumps
424 // when running memory benchmarks until they can be enabled/disabled in 425 // when running memory benchmarks until they can be enabled/disabled in
425 // base::trace_event::TraceConfig. See https://goo.gl/5Hj3o0. 426 // base::trace_event::TraceConfig. See https://goo.gl/5Hj3o0.
427 // The same mechanism should be used to disable periodic dumps in tests.
426 if (delegate_->IsCoordinatorProcess() && 428 if (delegate_->IsCoordinatorProcess() &&
427 !CommandLine::ForCurrentProcess()->HasSwitch( 429 !CommandLine::ForCurrentProcess()->HasSwitch(
428 "enable-memory-benchmarking")) { 430 "enable-memory-benchmarking") &&
431 !disable_periodic_dumps_for_testing_) {
429 g_periodic_dumps_count = 0; 432 g_periodic_dumps_count = 0;
430 periodic_dump_timer_.Start(FROM_HERE, 433 periodic_dump_timer_.Start(FROM_HERE,
431 TimeDelta::FromMilliseconds(kDumpIntervalMs), 434 TimeDelta::FromMilliseconds(kDumpIntervalMs),
432 base::Bind(&RequestPeriodicGlobalDump)); 435 base::Bind(&RequestPeriodicGlobalDump));
433 } 436 }
434 } 437 }
435 438
436 void MemoryDumpManager::OnTraceLogDisabled() { 439 void MemoryDumpManager::OnTraceLogDisabled() {
437 AutoLock lock(lock_); 440 AutoLock lock(lock_);
438 periodic_dump_timer_.Stop(); 441 periodic_dump_timer_.Stop();
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 next_dump_provider(next_dump_provider), 476 next_dump_provider(next_dump_provider),
474 callback(callback), 477 callback(callback),
475 task_runner(MessageLoop::current()->task_runner()) { 478 task_runner(MessageLoop::current()->task_runner()) {
476 } 479 }
477 480
478 MemoryDumpManager::ProcessMemoryDumpAsyncState::~ProcessMemoryDumpAsyncState() { 481 MemoryDumpManager::ProcessMemoryDumpAsyncState::~ProcessMemoryDumpAsyncState() {
479 } 482 }
480 483
481 } // namespace trace_event 484 } // namespace trace_event
482 } // namespace base 485 } // namespace base
OLDNEW
« no previous file with comments | « base/trace_event/memory_dump_manager.h ('k') | content/browser/tracing/memory_tracing_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698