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

3.3 KiB
Raw Blame History

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. 编译项目

# 在 Visual Studio 中打开项目
# 选择 Release 配置以获得最佳性能测试结果
# 构建项目

2. 启动 Tracy Profiler

# 从 Tracy 仓库的 profiler 目录运行
# 或使用预编译的 Tracy.exe

3. 运行测试程序

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