11

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

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

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

4

6 回答 6

4

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

于 2008-09-11T04:30:27.777 回答
2

一个常见的误解是,您需要知道代码有多快才能知道性能问题出在哪里。这混淆了问题发现和问题测量。

这是我使用的方法。

如果程序中有一些浪费的逻辑,不管用什么CPU运行都是浪费的。

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

通常有许多不同大小的问题。您可能会首先找到最大的那些,但无论您以什么顺序修复它们,您修复的每个都会更容易找到剩余的,因为它们会占更大的百分比。

于 2009-07-07T21:04:29.080 回答
1

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

于 2008-09-12T14:03:25.300 回答
0

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

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

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

于 2010-11-30T13:51:06.960 回答
0

许多分析器(例如 oprofile - 但仅限于 linux)允许您设置它们收集数据的频率。看看您的分析器是否支持这一点,如果不支持,请尝试其他支持。

于 2008-09-12T13:56:33.867 回答
0

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

于 2008-09-10T17:41:55.417 回答