{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":563490156,"defaultBranch":"main","name":"instruments-to-gecko","ownerLogin":"benjaminRomano","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-11-08T18:12:09.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/9221137?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1699657016.0","currentOid":""},"activityList":{"items":[{"before":"95bb746c5cb0d743bf103d8b98b5548fa17971a2","after":"2e6e1a3c78896ab8f9d3aa06baac6e33060858c0","ref":"refs/heads/main","pushedAt":"2023-11-11T04:07:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"benjaminRomano","name":"Benjamin Romano","path":"/benjaminRomano","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9221137?s=80&v=4"},"commit":{"message":"make --app optional","shortMessageHtmlLink":"make --app optional"}},{"before":"71c9cb3b2076087182130ecb20e24b4a07bf5e31","after":"95bb746c5cb0d743bf103d8b98b5548fa17971a2","ref":"refs/heads/main","pushedAt":"2023-11-10T22:54:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"benjaminRomano","name":"Benjamin Romano","path":"/benjaminRomano","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9221137?s=80&v=4"},"commit":{"message":"Add support for Virtual Memory, Syscalls and Thread Idle State Schemas (#3)\n\n**Background**\r\nPreviously, 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).\r\n\r\nThis PR wires up the ability to load samples from Virtual Memory, Thread State and Syscall schemas to help get more accurate callstack durations. \r\n\r\nThis significantly improves data quality especially when a trace file contains  thread states. \r\n\r\n**Changes**\r\n* Use double to represent sample time to avoid issue with truncation leading to sample overlap.\r\n* Refactor the node finding logic\r\n* Add support for loading samples from Virtual Memory\r\n* Add support for reading Time Profiler settings (is high freq mode, has context switches, etc.)\r\n* Add support for reading the Table of Contents\r\n* Add logic to print out XML nodes in the case of failures\r\n\r\n**Test Plan**\r\n* verified locally\r\n* TODO: In a follow-up add a test case for an Instruments file (I need to upgrade my personal Macbook to use XCode 14+ 😄)","shortMessageHtmlLink":"Add support for Virtual Memory, Syscalls and Thread Idle State Schemas ("}},{"before":"9db2664ed215027cc13f40fd7e4c39b35b3534bd","after":"a0c6fcc3f7879eaa8737fcce2310dfd9949a2709","ref":"refs/heads/bromano/add-more-features","pushedAt":"2023-11-10T22:53:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"benjaminRomano","name":"Benjamin Romano","path":"/benjaminRomano","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9221137?s=80&v=4"},"commit":{"message":"format code","shortMessageHtmlLink":"format code"}},{"before":null,"after":"9db2664ed215027cc13f40fd7e4c39b35b3534bd","ref":"refs/heads/bromano/add-more-features","pushedAt":"2023-11-10T22:37:12.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"benjaminRomano","name":"Benjamin Romano","path":"/benjaminRomano","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9221137?s=80&v=4"},"commit":{"message":"Add support for Virtual Memory, Syscalls and Thread States","shortMessageHtmlLink":"Add support for Virtual Memory, Syscalls and Thread States"}},{"before":"604bcfbb9171cc502f25e264466e0c460e0b7d6c","after":"71c9cb3b2076087182130ecb20e24b4a07bf5e31","ref":"refs/heads/main","pushedAt":"2023-11-10T21:35:16.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"benjaminRomano","name":"Benjamin Romano","path":"/benjaminRomano","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9221137?s=80&v=4"},"commit":{"message":"Merge pull request #2 from benjaminRomano/bromano/speed-up\n\n**Background**\r\nhttps://github.com/benjaminRomano/instruments-to-gecko/issues/1\r\nXCTrace conversion is slow because we re-perform look ups over large chunks of the XML tree for finding the original node given a reference node. \r\n\r\nThis can be sped up by maintaining a cache of `tag:refId -> node`.\r\n\r\n**Changes**\r\n* Implement a `tag:refId -> node` cache.\r\n* Furthermore, I found that we can further optimize by pre-computing the cache which avoids duplicate XML tree traversals\r\n\r\n**Test Plan**\r\n* Verified locally\r\n\r\n\r\nThis shaves off about 10s+ (15s -> 5s) for conversions.","shortMessageHtmlLink":"Merge pull request #2 from benjaminRomano/bromano/speed-up"}},{"before":"8fda36262e769db1eb250d87f5f83eec9328d57c","after":"8bf6903fe7b68090c7800a07e5b501698bbae8c4","ref":"refs/heads/bromano/speed-up","pushedAt":"2023-11-10T20:54:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"benjaminRomano","name":"Benjamin Romano","path":"/benjaminRomano","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9221137?s=80&v=4"},"commit":{"message":"update readme","shortMessageHtmlLink":"update readme"}},{"before":null,"after":"8fda36262e769db1eb250d87f5f83eec9328d57c","ref":"refs/heads/bromano/speed-up","pushedAt":"2023-11-10T20:50:52.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"benjaminRomano","name":"Benjamin Romano","path":"/benjaminRomano","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9221137?s=80&v=4"},"commit":{"message":"speed up conversion","shortMessageHtmlLink":"speed up conversion"}},{"before":"9ea14be77205a6313694467ac409471bad21be75","after":"604bcfbb9171cc502f25e264466e0c460e0b7d6c","ref":"refs/heads/main","pushedAt":"2023-03-25T11:42:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"benjaminRomano","name":"Benjamin Romano","path":"/benjaminRomano","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9221137?s=80&v=4"},"commit":{"message":"Use XCode 14.3 xctrace","shortMessageHtmlLink":"Use XCode 14.3 xctrace"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADrKk0SwA","startCursor":null,"endCursor":null}},"title":"Activity · benjaminRomano/instruments-to-gecko"}