首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多平台性能分析

多平台性能分析
EN

Stack Overflow用户
提问于 2013-05-06 18:05:47
回答 1查看 93关注 0票数 1

我已经写了一个程序,它在两种模式下运行,顺序和多线程,目的是在多个处理器体系结构上运行它,然后分析处理器的性能并比较它们。

有什么工具可以帮我做到这一点吗??找到执行时间,跟踪线程及其抢占,找出哪个处理器执行了哪个线程(如果在多核系统上),上下文切换开销和其他东西。

我已经有了使用gprof进行代码分析的基本知识,我相信这是不够的。我正在寻找的东西是相同的想法,但更强大!有什么帮助吗??

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-07 18:44:06

要获得有关执行时间、缓存行为等的更多信息,有多种方法。请确保先创建稳定的计算环境。锁定处理器频率以获得可靠的测量结果,例如,在基本输入输出系统中禁用英特尔SpeedStep;避免任何后台进程等。

低级性能计数器:

  • 您可以使用高分辨率计数器检测代码并测量性能。看一看PAPI interface for performance measurement.

高级分析器:

  • Perf,开源。Perf执行基于样本的测量,并显示各种分析信息,并完全支持多线程。例如,性能火焰图可以很好地概述代码中的热点。
  • 英特尔VTune,商业版。将显示来自HW计数器的详细缓存统计数据、每个线程的性能等。需要对硬件有相当深入的了解才能解释数据。

请注意,以上所有功能也可以测量功耗。

或者,您可以通过在操作系统中创建线程切换跟踪来查看程序随时间的行为。看一下Eclipse的LTTng集成。

如果您想查看有关代码实际并行行为的更多信息,例如可能会抑制并行性、线程开销和缓存争用的数据依赖项,您可以尝试从Vector Fabric开始Pareon (免责声明:我是Vector Fabric的创始人之一)。这不是分析器,而是更多用于并行化的代码分析。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16396369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档