commit | 37c8afd37bcb1bbc972924276a1a5380db24ad16 | [log] [tgz] |
---|---|---|
author | Alexander Timin <altimin@google.com> | Tue Apr 06 18:42:18 2021 +0000 |
committer | Alexander Timin <altimin@google.com> | Tue Apr 06 18:42:18 2021 +0000 |
tree | 708e6f3b3771243c4ebeb6a0df4c25c1619e6e0d | |
parent | a9af98cf17136c89d545f81cd0c431ea20fd5171 [diff] |
TraceTimestampTraits::ConvertTimestampToTraceTimeNs. Refactor existing method to allow clients to use custom types as timestamps to use template struct instead of templated function. The main reason for that is that templated function doesn't allow for checking whether a given type has a specialisation or not at the compile time (if the necessary specialisation is missing, it will fail at link time), so first condition in IsValidTimestamp now is always true and can't be relied upon. Fix this by wrapping the function in TraceTimestampTraits, so the check will succeed only when TraceTimestampTraits::ConvertTimestampToTraceTimeNs is actually defined, so IsValidTimestamp can be used to support more complex trace arguments combinations. Note: this will break clients overriding ConvertTimestampToTraceTimeNs. However the updates there should be straighforward and given that this was added fairly recently only Chromium is expected to use this at this point (this patch is expected to break the roll and should be submitted together with the Chromium-side fix). Bug: b/184558843 Change-Id: I588abcc9dd7466ff45a8cf9bfb5eaab2f24b1574
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.