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