Add support for counter timeline traces from the engine. (flutter/engine#6315)
This commit is contained in:
@@ -9,6 +9,20 @@
|
||||
namespace fml {
|
||||
namespace tracing {
|
||||
|
||||
void TraceCounter(TraceArg category_group, TraceArg name, TraceIDArg count) {
|
||||
auto count_string = std::to_string(count);
|
||||
const char* arg_names[] = {name};
|
||||
const char* arg_values[] = {count_string.c_str()};
|
||||
Dart_TimelineEvent(name, // label
|
||||
Dart_TimelineGetMicros(), // timestamp0
|
||||
0, // timestamp1_or_async_id
|
||||
Dart_Timeline_Event_Counter, // event type
|
||||
1, // argument_count
|
||||
arg_names, // argument_names
|
||||
arg_values // argument_values
|
||||
);
|
||||
}
|
||||
|
||||
void TraceEvent0(TraceArg category_group, TraceArg name) {
|
||||
Dart_TimelineEvent(name, // label
|
||||
Dart_TimelineGetMicros(), // timestamp0
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
|
||||
#include <trace/event.h>
|
||||
|
||||
#define FML_TRACE_COUNTER(category_group, name, count) \
|
||||
TRACE_COUNTER(category_group, name, 0u, name, count)
|
||||
#define TRACE_EVENT0(a, b) TRACE_DURATION(a, b)
|
||||
#define TRACE_EVENT1(a, b, c, d) TRACE_DURATION(a, b, c, d)
|
||||
#define TRACE_EVENT2(a, b, c, d, e, f) TRACE_DURATION(a, b, c, d, e, f)
|
||||
@@ -39,6 +41,13 @@
|
||||
::fml::tracing::ScopedInstantEnd __FML__TOKEN_CAT__2(__trace_end_, \
|
||||
__LINE__)(name);
|
||||
|
||||
// This macro has the FML_ prefix so that it does not collide with the macros
|
||||
// from trace/event.h on Fuchsia.
|
||||
//
|
||||
// TODO(chinmaygarde): All macros here should have the FML prefix.
|
||||
#define FML_TRACE_COUNTER(category_group, name, count) \
|
||||
::fml::tracing::TraceCounter(category_group, name, count);
|
||||
|
||||
#define TRACE_EVENT0(category_group, name) \
|
||||
::fml::tracing::TraceEvent0(category_group, name); \
|
||||
__FML__AUTO_TRACE_END(name)
|
||||
@@ -90,6 +99,8 @@ namespace tracing {
|
||||
using TraceArg = const char*;
|
||||
using TraceIDArg = int64_t;
|
||||
|
||||
void TraceCounter(TraceArg category_group, TraceArg name, TraceIDArg count);
|
||||
|
||||
void TraceEvent0(TraceArg category_group, TraceArg name);
|
||||
|
||||
void TraceEvent1(TraceArg category_group,
|
||||
|
||||
Reference in New Issue
Block a user