native-app-performance
透過 xctrace 進行原生 macOS/iOS 應用程式效能分析,並在無需開啟 Instruments UI 的情況下進行命令列熱點分析。
簡介
此技能為原生 macOS 與 iOS 應用程式提供了一套精簡的效能分析命令列介面。專為需要擷取效能數據並識別瓶頸或「熱點」(hotspots),同時又不希望使用圖形化 Instruments 應用程式帶來額外負擔的工程師所設計。透過使用 Apple 的 xctrace 公用程式,代理程式可以透過程式化方式附加到執行中的行程或啟動應用程式來記錄 Time Profiler 數據,隨後使用自定義 Python 指令碼進行解析與分析,從而提供關於應用程式執行模式的有效見解。
-
使用 xcrun xctrace 擷取高保真度的 Time Profiler 追蹤記錄,以監控 CPU 使用率與執行緒活動。
-
支援直接啟動行程與附加到現有行程 ID (PID),適用於多種靈活的分析情境。
-
自動提取二進位 .trace 檔案並將其轉換為人類可讀的 XML 時間取樣檔案。
-
透過 vmmap 提取載入位址來進行符號化 (Symbolication) 與熱點排名,協助開發者將取樣數據與特定的原始碼函式進行關聯。
-
與命令列工具整合,實現純粹基於終端的作業流程,非常適合 CI/CD 環境、遠端偵錯或自動化效能回歸測試。
-
請確保提供給工具的二進位檔案路徑與正在進行分析的應用程式版本完全一致,以避免符號化不匹配的問題。
-
務必考量位址空間配置隨機化 (ASLR),請在活動追蹤期間使用 vmmap 獲取執行時期的 __TEXT 區段載入位址。
-
將擷取期間集中在特定的使用者互動(如 UI 轉換、選單事件或資料處理週期),以避免應用程式閒置狀態產生的雜訊。
-
確認目標二進位檔案包含正確的除錯符號;若有必要,可使用標準 dSYM 檔案以增強 top_hotspots.py 指令碼輸出的準確性。
-
典型的輸出結果包含方法呼叫與函式堆疊的排名清單,能協助開發者快速識別原生程式碼庫中繁重的運算或阻塞操作。
倉庫統計
- Star 數
- 312
- Fork 數
- 46
- Open Issue 數
- 1
- 主要語言
- Vim Script
- 預設分支
- main
- 同步狀態
- 閒置
- 最近同步時間
- 2026年4月29日 上午06:53