geek-doc.cn — Linux 系统实验可复现代码集
与《Linux 性能剖析》站点 https://geek-doc.cn 配套的可运行实验代码。 每个 demo 独立可编译、可运行,
make run即出结果。
快速开始
bash
git clone --depth 1 https://github.com/derekzhuo/geek-doc.cn.git
cd geek-doc.cn
make -C cpu-demo run # 跑第一个 demo:CPU 使用率三场景运行要求:Linux(demo 依赖
/proc、perf等)。macOS 可编译多数 demo,但部分输出不同。📖 配套理论讲解、perf 命令逐行解读与原始输出分析,全在站点 https://geek-doc.cn(「演示程序」栏目)。
目录总览
每个 demo 的完整理论讲解都对应站点里的专属文档页,地址格式 https://geek-doc.cn/demos/<demo>/:
| # | demo | 主题 | 运行 |
|---|---|---|---|
| D1/D2 | cpu-demo | CPU 使用率三场景 + perf stat/record 基础 | make -C cpu-demo run |
| D3 | tlb-thrashing | TLB 页表缓存抖动实验 | make -C tlb-thrashing run |
| D4 | cache-miss | 缓存未命中模式(顺序/随机/跨步) | make -C cache-miss run |
| D5 | branch-predict | 分支预测(有序/随机/无分支) | make -C branch-predict run |
| D6 | stall-analysis | 流水线停顿(前端 vs 后端) | make -C stall-analysis run |
| D7 | syscall-trace | 系统调用追踪实验 | make -C syscall-trace run |
| D8 | lock-contention | 锁争用诊断实验 | make -C lock-contention run |
| D9 | false-sharing | 伪共享检测实验(perf c2c) | make -C false-sharing run |
| D10 | sched-latency | 调度延迟诊断实验 | make -C sched-latency run |
| D11 | perf-probe | 动态探针插桩实验(perf probe/USDT) | make -C perf-probe run |
| D12 | perf-bench-diff | 微基准 + 优化对比实验 | make -C perf-bench-diff run |
| D13 | indirect-branch | 间接分支预测(虚函数/函数指针/switch) | make -C indirect-branch run |
| D14 | mt-io-demo | 多线程 + IO 分析方法演练 | make -C mt-io-demo run |
| - | compiler-reordering | 编译器重排与 data-race UB | make -C compiler-reordering run |
| - | crash-signals | 崩溃信号复现(10 个程序) | make -C crash-signals run |
💡 记不住地址?站点首页 https://geek-doc.cn → 顶部导航「演示程序」→ 每个 demo 都有对应页面,含复现命令、代码讲解与实测数据。
常用命令
bash
make -C <demo> # 编译(默认 -O0 -g,保留 perf 符号)
make -C <demo> run # 编译并运行
make -C <demo> release # 以 -O2 编译对比(观察优化器效果)
make -C <demo> clean # 清理配套理论文档
这里只提供可运行代码;每个实验背后的原理、perf 工具用法、原始输出与逐行分析,请到配套文档站阅读:
- 站点首页:https://geek-doc.cn
- 演示程序栏目:https://geek-doc.cn/demos/
- 站内搜索「性能剖析」「perf」即可直达对应理论章节
为什么"跑"和"读"分开?因为代码就该能跑,原理就该讲透——在站点读完理论,回这里
make run亲手验证,效果最好。
许可
MIT — 自由使用、修改、再分发,仅需保留版权声明。
站点:https://geek-doc.cn · 喜欢这个仓库的话,欢迎在 GitHub 点个 ⭐