Skip to content
Compare
Choose a tag to compare
@benjaminRomano benjaminRomano released this 10 Nov 22:56
· 1 commit to main since this release
95bb746
Add support for Virtual Memory, Syscalls and Thread Idle State Schema…

…s (#3)

**Background**
Previously, we needed to use a heuristic to determine if a callstack was terminated (i.e. we did not receive new samples because the thread is idle and not running / blocked / pre-empted).

This PR wires up the ability to load samples from Virtual Memory, Thread State and Syscall schemas to help get more accurate callstack durations. 

This significantly improves data quality especially when a trace file contains  thread states. 

**Changes**
* Use double to represent sample time to avoid issue with truncation leading to sample overlap.
* Refactor the node finding logic
* Add support for loading samples from Virtual Memory
* Add support for reading Time Profiler settings (is high freq mode, has context switches, etc.)
* Add support for reading the Table of Contents
* Add logic to print out XML nodes in the case of failures

**Test Plan**
* verified locally
* TODO: In a follow-up add a test case for an Instruments file (I need to upgrade my personal Macbook to use XCode 14+ 😄)