Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

系統分析與效能工具

程式分析、效能追蹤、編譯器工具鏈與系統監控。

🔍 程式分析工具

完整指南

核心內容:

  • 靜態分析工具
  • 動態分析工具
  • 記憶體分析
  • 效能剖析
  • 工具選擇建議

函數追蹤

核心內容:

  • C++ 函數追蹤
  • Rust 追蹤機制
  • 追蹤工具對比
  • 實戰應用

addr2line

核心內容:

  • 地址符號解析
  • 追蹤函數進出
  • 除錯資訊提取
  • 實用技巧

🔥 效能追蹤

Flamegraph

核心內容:

  • Flamegraph 原理
  • CPU 效能分析
  • 記憶體火焰圖
  • Off-CPU 分析
  • 實戰案例

Guider

核心內容:

  • Guider 安裝設置
  • 系統效能監控
  • 資源追蹤
  • 報告生成

🛠️ 編譯器工具鏈

Cross Compiler

核心內容:

  • 交叉編譯概念
  • LLVM vs GCC 對比
  • 工具鏈選擇
  • 實戰配置

LLVM

核心內容:

  • LLVM 架構設計
  • IR 中間表示
  • 優化 Pass
  • 不同語言效能分析
  • 編譯器後端

💡 系統分析實踐

效能剖析流程

  1. 基本剖析

    # CPU 剖析
    perf record -g ./program
    perf report
    
    # 生成 Flamegraph
    perf script | stackcollapse-perf.pl | flamegraph.pl > flame.svg
    
  2. 記憶體分析

    # Valgrind massif
    valgrind --tool=massif ./program
    ms_print massif.out.*
    
    # Heaptrack
    heaptrack ./program
    heaptrack_gui heaptrack.program.*.gz
    

函數追蹤

# 使用 addr2line 解析地址
addr2line -e ./program -f -C 0x12345

# 使用 ltrace 追蹤函數呼叫
ltrace -C -f ./program

# 使用 strace 追蹤系統呼叫
strace -f -e trace=open,close,read,write ./program

編譯器優化

# GCC 優化
gcc -O3 -march=native -flto -g program.c

# LLVM/Clang 優化
clang -O3 -march=native -flto -g program.c

# 查看優化報告
gcc -O3 -fopt-info-vec-optimized program.c

最後更新: 2025-12-01