Files
tracy-for-unity/README_TEST.md
2025-11-26 14:35:58 +08:00

113 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 的统计功能分析函数调用次数和平均执行时间