10

我想要一个软件环境,我可以在其中测试我的软件在具有特定资源的硬件上的速度。例如,当我的主机硬件是具有 12GB RAM 的 3GHz 四核 amd64 时,该程序在具有 24Mb RAM 的 800MHz x86 上运行的速度有多快?诸如 qemu 之类的仿真器非常注重与底层硬件“几乎一样快”地运行;我想让它运行得更慢。有没有办法做到这一点?

4

2 回答 2

2

我从未尝试过,但也许您可以通过将 Linux 上的 QEMU 或 VirtualBox 之类的模拟器与以下内容结合起来,在某种程度上实现您想要的效果:

http://cpulimit.sourceforge.net/

如果您可以限制模拟器可用的 CPU 时间,您也许可以在较慢的计算机上模拟执行结果。但是请记住,这只会影响执行速度(或者我希望如此)。

CPU 指令集和其他系统功能将保持不变。这意味着即使不是不可能,准确地模拟特定的处理器也是很困难的。

此外,使用 cpulimit 之类的东西,它使用 SIGSTOP 和 SIGCONT 反复停止/重新启动模拟器进程可能会导致副作用,例如时序不一致、视频显示伪影等。

于 2010-11-19T01:27:42.973 回答
0

在您的模拟器中,保留一个虚拟“时钟”并在执行每条指令时适当增加它。从那里您可以简单地报告执行虚拟时间所花费的时间,或者您可以让您的模拟器不时休眠以将执行速度大致保持在目标中的位置。

于 2010-11-19T00:29:56.323 回答