工程開發
rspack-sftrace avatar

rspack-sftrace

使用 LLVM XRay 追蹤 Rspack Rust 函式呼叫,用於效能分析、故障排除及視覺化執行流程。

簡介

rspack-sftrace 提供了一套用於剖析 Rspack 打包器 Rust 核心的結構化方法。透過利用 LLVM XRay 插裝技術,此工具能擷取函式進入與退出點的詳細資訊,協助開發人員識別效能瓶頸、理解複雜的執行流程,並排除建置過程中的延遲問題。它專為 Rspack 貢獻者與在 monorepo 環境中工作的效能工程師而設計。

該工具提供了從二進位檔案插裝到視覺化分析的完整診斷管線。使用者可以產生過濾後的日誌以隔離特定函式符號,大幅降低大型建置中的干擾資訊。工作流程包含將原始日誌轉換為 Polars Dataframe 以進行統計分析,或轉換為 Perfetto 相容的 protobuf 格式以進行高精確度的視覺化追蹤。這能協助識別熱點路徑、遞迴函式開銷以及執行緒特定的執行模式。

  • 透過 LLVM XRay 對 Rust 函式呼叫進行插裝,以獲得精確的計時數據。

  • 進階過濾功能,支援使用正規表示式或列表匹配來鎖定特定函式符號。

  • 支援將追蹤數據匯出至 Polars 進行程式化分析,包括按函式 ID 分組及計算執行時間。

  • 將追蹤成品轉換為 Perfetto protobuf 格式,以整合至 VizTracer 等視覺化工具中。

  • 支援執行緒感知剖析,以捕捉現代高效能建置工具中常見的並發執行模式。

  • 工具預期目標專案需在啟用插裝的情況下建置 (SFTRACE=1)。

  • 在專案範例目錄中執行可獲得最佳效能結果。

  • 請注意,過濾功能不會自動保留子層函式呼叫;若需完整的呼叫堆疊,請儘量執行無過濾的擷取。

  • 確保環境中已安裝必要的原生相依套件與二進位工具 (sftrace)。

  • 追蹤日誌檔案可能會非常龐大;請將成品儲存在專案目錄中,以避免耗盡系統儲存空間。

倉庫統計

Star 數
12,667
Fork 數
794
Open Issue 數
189
主要語言
Rust
預設分支
main
同步狀態
閒置
最近同步時間
2026年5月3日 上午09:35
在 GitHub 查看