Allow typed proto messages to be written into TracedValue. This patch adds TracedValue::WriteProto<proto::pbzero::MessageType>() method, which can be used to write structured proto inside TracedValue. Also TracedProto now gets an implicit constructor from TracedValue, which means that if a C++ class implements Foo::WriteIntoTrace(TracedProto<...>) method, it can be used in all places where a class implementing Foo::WriteIntoTrace(TracedValue) can be used, including: - being passed as an untyped argument to TRACE_EVENT: TRACE_EVENT(..., "arg", Foo()); - being passed to TracedDictionary::Add / TracedArray::Append. This patch also adds MessageType::GetName() method to the protozero bindings, which is needed for implementation of WriteProto method. R=eseckler@google.com,skyostil@google.com CC=​primiano@google.com Bug: b/184558843 Change-Id: Ibe75be0943557d841edc03af5868b3b3999b8a7c
Perfetto is a production-grade open-source stack for performance instrumentation and trace analysis. It offers services and libraries and for recording system-level and app-level traces, native + java heap profiling, a library for analyzing traces using SQL and a web-based UI to visualize and explore multi-GB traces.
See https://perfetto.dev/docs or the /docs/ directory for documentation.