commit | b7b626b3a9b147e64be2e29402bcdaaed7088ce2 | [log] [tgz] |
---|---|---|
author | Primiano Tucci <primiano@google.com> | Tue Jun 01 19:23:15 2021 +0100 |
committer | Primiano Tucci <primiano@google.com> | Tue Jun 01 19:23:15 2021 +0100 |
tree | 68014bfc19156f5d88f974d8de3ebbdb08cf9d34 | |
parent | 71719e601946d80f52445f4ca232f3b1b4d652f3 [diff] |
trace_processor: clean up SystraceParser The systrace line parser accumulated too much technical debt and became a source of bugs. Refactor it to keep more readable. Deliberate behavioral changes: - Don't parse the counter value as double. ctrace seems to support only int values. Double can lose precision with pointers or anything larger than 2**53. - Relax the parsing of "category groups" for counters, allow parsing of "C|543|foo|". We ignore the last arg anyways. Also fix a borderline behavior I spotted in StringView. When constructing a StringView(end(), 0), data_ is NOT nullptr even though the string is empty. For that case, when calling ToStdString() check the size_ not data_ nullity. data_ nullity relies on std::string ctor to have a defined behavior when calling std::string(out_of_bounds_ptr, 0). I couldn't find any confirmation about this. Change-Id: Ied7cd806c7f740e2cfad5e1854f956e1e4b4ef72 Bug: 189804795
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.