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

Side by Side Diff: skia/ext/event_tracer_impl.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, 8 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
« no previous file with comments | « gin/v8_platform.cc ('k') | third_party/WebKit/Source/platform/EventTracer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 <stdint.h> 5 #include <stdint.h>
6 6
7 #include "base/trace_event/heap_profiler_allocation_context_tracker.h"
7 #include "base/trace_event/trace_event.h" 8 #include "base/trace_event/trace_event.h"
8 #include "skia/ext/event_tracer_impl.h" 9 #include "skia/ext/event_tracer_impl.h"
9 #include "third_party/skia/include/utils/SkEventTracer.h" 10 #include "third_party/skia/include/utils/SkEventTracer.h"
10 11
11 namespace skia { 12 namespace skia {
12 13
13 class SkChromiumEventTracer: public SkEventTracer { 14 class SkChromiumEventTracer: public SkEventTracer {
14 const uint8_t* getCategoryGroupEnabled(const char* name) override; 15 const uint8_t* getCategoryGroupEnabled(const char* name) override;
15 const char* getCategoryGroupName(const uint8_t* categoryEnabledFlag) override; 16 const char* getCategoryGroupName(const uint8_t* categoryEnabledFlag) override;
16 SkEventTracer::Handle addTraceEvent(char phase, 17 SkEventTracer::Handle addTraceEvent(char phase,
17 const uint8_t* categoryEnabledFlag, 18 const uint8_t* categoryEnabledFlag,
18 const char* name, 19 const char* name,
19 uint64_t id, 20 uint64_t id,
20 int32_t numArgs, 21 int32_t numArgs,
21 const char** argNames, 22 const char** argNames,
22 const uint8_t* argTypes, 23 const uint8_t* argTypes,
23 const uint64_t* argValues, 24 const uint64_t* argValues,
24 uint8_t flags) override; 25 uint8_t flags) override;
25 void updateTraceEventDuration(const uint8_t* categoryEnabledFlag, 26 void updateTraceEventDuration(const uint8_t* categoryEnabledFlag,
26 const char* name, 27 const char* name,
27 SkEventTracer::Handle handle) override; 28 SkEventTracer::Handle handle) override;
29 void pushPseudoStackFrame(const char* stack_frame) override;
30 void popPseudoStackFrame(const char* stack_frame) override;
28 }; 31 };
29 32
30 const uint8_t* 33 const uint8_t*
31 SkChromiumEventTracer::getCategoryGroupEnabled(const char* name) { 34 SkChromiumEventTracer::getCategoryGroupEnabled(const char* name) {
32 return TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED(name); 35 return TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED(name);
33 } 36 }
34 37
38 void SkChromiumEventTracer::pushPseudoStackFrame(const char* stack_frame) {
39 base::trace_event::AllocationContextTracker::GetInstanceForCurrentThread()
40 ->PushPseudoStackFrame(stack_frame);
41 }
42
43 void SkChromiumEventTracer::popPseudoStackFrame(const char* stack_frame) {
44 base::trace_event::AllocationContextTracker::GetInstanceForCurrentThread()
45 ->PopPseudoStackFrame(stack_frame);
46 }
47
35 const char* SkChromiumEventTracer::getCategoryGroupName( 48 const char* SkChromiumEventTracer::getCategoryGroupName(
36 const uint8_t* categoryEnabledFlag) { 49 const uint8_t* categoryEnabledFlag) {
37 return base::trace_event::TraceLog::GetCategoryGroupName(categoryEnabledFlag); 50 return base::trace_event::TraceLog::GetCategoryGroupName(categoryEnabledFlag);
38 } 51 }
39 52
40 SkEventTracer::Handle 53 SkEventTracer::Handle
41 SkChromiumEventTracer::addTraceEvent(char phase, 54 SkChromiumEventTracer::addTraceEvent(char phase,
42 const uint8_t* categoryEnabledFlag, 55 const uint8_t* categoryEnabledFlag,
43 const char* name, 56 const char* name,
44 uint64_t id, 57 uint64_t id,
(...skipping 24 matching lines...) Expand all
69 82
70 } // namespace skia 83 } // namespace skia
71 84
72 85
73 void InitSkiaEventTracer() { 86 void InitSkiaEventTracer() {
74 // Initialize the binding to Skia's tracing events. Skia will 87 // Initialize the binding to Skia's tracing events. Skia will
75 // take ownership of and clean up the memory allocated here. 88 // take ownership of and clean up the memory allocated here.
76 if (!SkEventTracer::GetInstance()) 89 if (!SkEventTracer::GetInstance())
77 SkEventTracer::SetInstance(new skia::SkChromiumEventTracer()); 90 SkEventTracer::SetInstance(new skia::SkChromiumEventTracer());
78 } 91 }
OLDNEW
« no previous file with comments | « gin/v8_platform.cc ('k') | third_party/WebKit/Source/platform/EventTracer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698