Conversation
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 383cf217fa
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| appBundleId: string, | ||
| processes: IosDeviceProcessInfo[], | ||
| ): Promise<IosDeviceFramePerfCapture> { | ||
| const targetProcess = processes[0]; |
There was a problem hiding this comment.
Select the app PID before recording Animation Hitches
The frame sampler unconditionally attaches xctrace to processes[0], but iOS bundles can have multiple running processes (main app plus extensions/helpers) and this list is not ordered by foreground relevance. When a helper PID appears first, the trace targets the wrong process and droppedFramePercent can silently under-report real UI hitches for the app session. Choose the main app executable PID (or another deterministic foreground PID) before building the --attach argument.
Useful? React with 👍 / 👎.
| await exportIosDeviceFramePerfTable( | ||
| device, | ||
| appBundleId, | ||
| tracePath, | ||
| 'device-display-info', | ||
| displayInfoPath, |
There was a problem hiding this comment.
Treat display-info export as optional in frame sampling
The parser already models displayInfoXml as optional and can compute dropped-frame metrics without refresh-rate data, but capture currently fails the entire FPS metric if device-display-info export fails. This makes frame health unavailable on environments where that table is missing or intermittently fails to export, even when hitches and hitches-frame-lifetimes exported successfully. Make the display-info export/read path best-effort so core FPS data still returns.
Useful? React with 👍 / 👎.
Summary
Add iOS frame-health perf sampling via xctrace Animation Hitches for connected iOS devices.
Keep Apple CPU/memory metrics available when FPS is unsupported or fails, serialize Apple xctrace sampling to avoid recorder contention, and retry transient kperf lock failures seen on physical devices.
Touched-file count: 10. Scope stayed within Apple perf, session perf aggregation, tests, CLI help, and docs.
Validation