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

Unified Diff: base/trace_event/trace_log.cc

Issue 1850603002: [tracing] Use trace event profiling for heap profiling Base URL: https://chromium.googlesource.com/chromium/src.git@all_categories
Patch Set: Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/trace_event/trace_event.h ('k') | gin/public/v8_platform.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/trace_event/trace_log.cc
diff --git a/base/trace_event/trace_log.cc b/base/trace_event/trace_log.cc
index b7cc599187de89214a9b9d97d2a30c34b586b010..067b2499e97de8e970c740b9ac048a859fe5ebd5 100644
--- a/base/trace_event/trace_log.cc
+++ b/base/trace_event/trace_log.cc
@@ -1323,13 +1323,10 @@ TraceEventHandle TraceLog::AddTraceEventWithThreadIdAndTimestamp(
// Blink and skia crbug.com/598426.
if (!(flags & TRACE_EVENT_FLAG_COPY)) {
if (AllocationContextTracker::capture_enabled()) {
- if (phase == TRACE_EVENT_PHASE_BEGIN ||
- phase == TRACE_EVENT_PHASE_COMPLETE) {
+ if (phase == TRACE_EVENT_PHASE_BEGIN) {
AllocationContextTracker::GetInstanceForCurrentThread()
->PushPseudoStackFrame(name);
} else if (phase == TRACE_EVENT_PHASE_END) {
- // The pop for |TRACE_EVENT_PHASE_COMPLETE| events
- // is in |TraceLog::UpdateTraceEventDuration|.
AllocationContextTracker::GetInstanceForCurrentThread()
->PopPseudoStackFrame(name);
}
@@ -1453,12 +1450,6 @@ void TraceLog::UpdateTraceEventDuration(
console_message =
EventToConsoleMessage(TRACE_EVENT_PHASE_END, now, trace_event);
}
-
- if (base::trace_event::AllocationContextTracker::capture_enabled()) {
- // The corresponding push is in |AddTraceEventWithThreadIdAndTimestamp|.
- base::trace_event::AllocationContextTracker::GetInstanceForCurrentThread()
- ->PopPseudoStackFrame(name);
- }
}
if (console_message.size())
@@ -1724,30 +1715,41 @@ ScopedTraceBinaryEfficient::ScopedTraceBinaryEfficient(
category_group, atomic, category_group_enabled_);
name_ = name;
if (*category_group_enabled_ &
- base::trace_event::TraceLog::ENABLED_FOR_NON_PROFILING_MODE) {
- event_handle_ =
- TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP(
- TRACE_EVENT_PHASE_COMPLETE,
- category_group_enabled_,
- name,
- trace_event_internal::kGlobalScope, // scope
- trace_event_internal::kNoId, // id
- static_cast<int>(base::PlatformThread::CurrentId()), // thread_id
- base::TimeTicks::Now(),
- trace_event_internal::kZeroNumArgs,
- nullptr,
- nullptr,
- nullptr,
- nullptr,
- TRACE_EVENT_FLAG_NONE);
+ (base::trace_event::TraceLog::ENABLED_FOR_HEAP_PROFILING |
+ base::trace_event::TraceLog::ENABLED_FOR_NON_PROFILING_MODE)) {
+ if (*category_group_enabled_ &
+ base::trace_event::TraceLog::ENABLED_FOR_HEAP_PROFILING) {
+ base::trace_event::AllocationContextTracker::GetInstanceForCurrentThread()
+ ->PushPseudoStackFrame(name);
+ }
+ if (*category_group_enabled_ &
+ base::trace_event::TraceLog::ENABLED_FOR_NON_PROFILING_MODE) {
+ event_handle_ =
+ TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP(
+ TRACE_EVENT_PHASE_COMPLETE, category_group_enabled_, name,
+ trace_event_internal::kGlobalScope, // scope
+ trace_event_internal::kNoId, // id
+ static_cast<int>(base::PlatformThread::CurrentId()), // thread_id
+ base::TimeTicks::Now(), trace_event_internal::kZeroNumArgs,
+ nullptr, nullptr, nullptr, nullptr, TRACE_EVENT_FLAG_NONE);
+ }
}
}
ScopedTraceBinaryEfficient::~ScopedTraceBinaryEfficient() {
if (*category_group_enabled_ &
- base::trace_event::TraceLog::ENABLED_FOR_NON_PROFILING_MODE) {
- TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION(category_group_enabled_, name_,
- event_handle_);
+ (base::trace_event::TraceLog::ENABLED_FOR_HEAP_PROFILING |
+ base::trace_event::TraceLog::ENABLED_FOR_NON_PROFILING_MODE)) {
+ if (*category_group_enabled_ &
+ base::trace_event::TraceLog::ENABLED_FOR_HEAP_PROFILING) {
+ base::trace_event::AllocationContextTracker::GetInstanceForCurrentThread()
+ ->PopPseudoStackFrame(name_);
+ }
+ if (*category_group_enabled_ &
+ base::trace_event::TraceLog::ENABLED_FOR_NON_PROFILING_MODE) {
+ TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION(category_group_enabled_,
+ name_, event_handle_);
+ }
}
}
« no previous file with comments | « base/trace_event/trace_event.h ('k') | gin/public/v8_platform.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698