Files
tracy-for-unity/README_TEST.md

113 lines
3.3 KiB
Markdown
Raw Normal View History

2025-11-26 14:35:58 +08:00
# Tracy 性能测试代码说明
这个项目包含多个高性能计算测试用例,用于展示 Tracy 性能分析器的功能。
## 测试内容
### 1. 矩阵乘法 (Matrix Multiplication)
- 200x200 矩阵相乘
- 展示计算密集型操作的性能
- 三重循环,复杂度 O(n³)
### 2. 快速排序 (Quick Sort)
- 对 100,000 个随机整数进行排序
- 展示递归算法的性能特征
- 平均复杂度 O(n log n)
### 3. 质数计算 (Prime Numbers)
- 使用埃拉托斯特尼筛法
- 计算 0-1,000,000 范围内的所有质数
- 展示循环嵌套和内存访问模式
### 4. 蒙特卡罗π值计算 (Monte Carlo Pi)
- 使用随机采样方法估算π值
- 10,000,000 次迭代
- 展示随机数生成和条件判断的性能
### 5. 斐波那契数列 (Fibonacci)
- **递归方法**: fibonacci(35) - 展示递归调用的开销
- **动态规划**: fibonacci(90) - 展示优化算法的性能差异
### 6. 向量点积 (Vector Dot Product)
- 10,000,000 维向量点积计算
- 展示大规模线性代数运算
- 内存访问密集型操作
### 7. 复杂数学运算 (Complex Math)
- sin, cos, tan, sqrt, log 等函数组合
- 1,000,000 次迭代
- 展示浮点运算性能
### 8. 内存密集型操作 (Memory Intensive)
- 创建 1000x1000 二维数组
- 填充和遍历大量数据
- 展示内存分配和访问模式
### 9. 多线程测试 (Multi-Threading)
- 8 个线程并行执行
- 每个线程执行 50,000,000 次计算
- 展示多线程性能和同步开销
## 如何使用
### 1. 编译项目
```bash
# 在 Visual Studio 中打开项目
# 选择 Release 配置以获得最佳性能测试结果
# 构建项目
```
### 2. 启动 Tracy Profiler
```bash
# 从 Tracy 仓库的 profiler 目录运行
# 或使用预编译的 Tracy.exe
```
### 3. 运行测试程序
```bash
# 运行 MyProject.exe
# Tracy Profiler 会自动连接(如果启用了 TRACY_ON_DEMAND
```
### 4. 在 Tracy 中观察
- 查看每个函数的执行时间
- 比较递归 vs 动态规划的性能差异
- 观察多线程的并行执行情况
- 分析热点函数和瓶颈
## Tracy 宏说明
- `ZoneScoped`: 自动追踪整个函数的执行时间
- `ZoneScopedN("名称")`: 追踪代码块并指定自定义名称
- `FrameMark`: 标记帧边界,便于区分不同的测试轮次
## 性能优化建议
根据 Tracy 的分析结果,你可以:
1. **识别热点**: 找出耗时最长的函数
2. **优化算法**: 比较不同算法实现(如递归 vs 动态规划)
3. **并行化**: 识别可以并行化的计算
4. **缓存优化**: 观察内存访问模式,优化数据结构
5. **减少递归**: 递归调用会带来额外开销
## 预期结果
在 Tracy Profiler 中,你应该能够看到:
- **矩阵乘法**: 相对较长的执行时间CPU 密集
- **递归斐波那契**: 大量重复的函数调用(可视化调用树)
- **动态规划斐波那契**: 单次执行,线性时间
- **多线程**: 8 个并行执行的线程,清晰的时间线
- **质数计算**: 循环密集,但相对高效
- **蒙特卡罗**: 稳定的执行时间,随机数生成开销
## 提示
- 使用 Release 配置编译可以获得更接近实际应用的性能数据
- 多次运行测试可以在 Tracy 中观察性能的一致性
- 尝试修改参数(矩阵大小、迭代次数等)观察性能变化
- 使用 Tracy 的统计功能分析函数调用次数和平均执行时间