限制CPU速度以进行性能分析

时间:2008-09-10 17:37:58

标签: c++ profiling cpu

我正在尝试优化应用程序上的几个瓶颈,这个应用程序应该运行在各种各样的CPU和架构上(其中一些非常接近嵌入式设备)。

然而,由于我的CPU速度,我的分析器的结果并不是很重要。有没有办法(最好是在Windows或Mac OS X下)限制我的CPU速度以进行性能分析?

我考虑过使用虚拟机,但没有找到任何具有此类功能的虚拟机。

6 个答案:

答案 0 :(得分:4)

这很好用,支持多核。 http://www.cpukiller.com/

答案 1 :(得分:2)

一个常见的误解是,您需要知道代码知道性能问题的速度有多快。这使问题发现与问题测量混淆。

This is the method I use.

如果程序中存在一些浪费的逻辑,无论CPU运行它都会浪费。

您需要知道的是它在哪里。对于测量,您不需要知道它有多大;你只需知道它足够大就需要修复。

通常存在许多不同大小的问题。你可能会先找到最大的那些,但无论你修复它们的顺序,你修复的每一个都会更容易找到其余的,因为它们会占用更大的百分比。

答案 2 :(得分:1)

我担心除了开始在您所在地区寻找旧硬件之外我不知道任何答案。 CPU不是唯一可以(通常)影响事物的变量。 L1 / L2高速缓存大小,内存总线速度,内存速度/延迟,硬盘驱动器速度等都是许多应用程序中的重要因素。

答案 3 :(得分:0)

最近在Downloadsquad.com上有一个应用程序。我不记得它的名字,但它做了一些有趣的僵硬的处理器和任务管理器。它可能只是管理什么应用程序在什么CPU上,但也许它会给你这个。今天下午我会尝试寻找它,如果我发现它,我会回复。

答案 4 :(得分:0)

许多分析器(例如oprofile - 但仅限Linux)允许您设置它们收集数据的频率。看看您的探查器是否支持此功能,如果没有,请尝试使用其他功能。

答案 5 :(得分:0)

  

我考虑过使用虚拟游戏   机器,但没有发现任何   这样的功能。

为什么需要一个明确提供该功能的VM?只需限制主机操作系统中VM的CPU使用率(它只是一个常规过程)。这应该具有完全相同的效果。

你可以这样做,例如在Linux上使用cpulimit; MS Windows存在类似的解决方案。