♻️ refactor(playbook): streamline agents and refresh tsl docs

This commit is contained in:
csh
2026-01-10 16:55:44 +08:00
parent b529012c59
commit 5822a8736d
88 changed files with 103561 additions and 130104 deletions
@@ -0,0 +1,109 @@
---
name: performance-optimization
description: "性能优化工作流(TSL/Python/C++):度量→定位→优化→验证。Triggers: 性能优化, 优化性能, 代码慢, 提升速度, performance optimization, slow code, profiling"
---
# 性能优化工作流
> 适用语言:TSL / Python / C++
> 核心原则:没有度量就没有优化。
## 使用时机
- 功能正确,但响应慢或资源消耗过高
- 热路径明显(循环/批处理/大规模数据)
- 需要在不改变行为的前提下提升性能
## 必备输入
- 目标场景与数据规模(输入大小、并发量)
- 基线指标(耗时、吞吐、内存、CPU)
- 约束条件(允许的改动范围、兼容性要求)
## 工作流程(按顺序)
### 1. 度量基线(Baseline
先拿到“优化前”的数据作为对照。
- TSL(计时示例,使用 MTIC/MTOC):
```tsl
T1 := MTIC;
// ... 逻辑 ...
Elapsed := MTOC(T1);
Echo "Elapsed:", Elapsed;
```
- Python
```python
import time
start = time.time()
# ... code ...
print(f"Elapsed: {time.time() - start:.3f}s")
```
- C++
```cpp
auto start = std::chrono::high_resolution_clock::now();
// ... code ...
auto elapsed = std::chrono::duration_cast<std::chrono::milliseconds>(
std::chrono::high_resolution_clock::now() - start);
std::cout << "Elapsed: " << elapsed.count() << "ms\n";
```
### 2. 定位瓶颈(Profiling
只优化热点,不动冷路径。
- TSL:插入关键路径计时,或使用 `docs/tsl/syntax_book/07_debug_and_profiler.md` 中的工具
- Python`cProfile` / `line_profiler`
- C++`perf` / `gprof` / `valgrind --tool=callgrind`
### 3. 优化策略(从高收益到低收益)
**3.1 算法级(优先级最高)**
- 降低复杂度:`O(n^2)``O(n log n)``O(n)`
- 避免重复计算:缓存、记忆化
**3.2 数据结构级**
- 选择合适容器:数组 vs 哈希表 vs 树
- 预分配容量,减少扩容
**3.3 循环级**
- 循环内不做 I/O
- 循环内避免重复解析/格式化
- 提前计算循环不变量
**3.4 I/O 级**
- 批量读写(减少系统调用)
- 缓存(明确 TTL 与容量上限)
### 4. 验证效果(Verify
- 对比优化前后指标
- 运行回归测试,保证行为一致
- 在真实数据量下复测
## 反模式(不要做)
- 没有度量就“感觉”优化
- 牺牲可读性换取微小收益
- 为冷路径引入复杂缓存
- 未验证就宣称提升
## 输出清单(交付要求)
- 基线指标(优化前)
- 瓶颈定位结果(热点函数/路径)
- 优化方案与改动点
- 优化后指标(对比数据)
- 风险说明与回滚策略
## 权威参考
- TSL`docs/tsl/syntax_book/07_debug_and_profiler.md`
- Python`docs/python/tooling.md`
- C++`docs/cpp/toolchain.md`