Add support for counter timeline traces from the engine. (flutter/engine#6315)

This commit is contained in:
Chinmay Garde
2018-09-26 13:26:23 -07:00
committed by GitHub
parent fbcfffdc7e
commit b1b2a1cc3f
2 changed files with 25 additions and 0 deletions

View File

@@ -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

View File

@@ -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,