Skip to content

Releases: benjaminRomano/instruments-to-gecko

1.0

10 Nov 22:56
95bb746
Compare
Choose a tag to compare
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+ 😄)