如何在仅使用一台机器的情况下模拟在不同硬件上运行代码?

时间:2012-12-27 05:17:32

标签: testing resources benchmarking performance-testing emulation

正如标题所说,我希望在不同的硬件设置上估算一段代码的性能。有没有工具可以做到这一点?

我希望运行我的代码并通过限制流程可用的资源来执行测量。我想控制诸如可用的总内存以及CPU使用率之类的东西,但如果我有更多的粒度,那会更好。是否有任何工具可以让我模拟不同速度的RAM,速率限制CPU(比如X gigaflops),减慢磁盘读取等?

我已经在linux中查看setrlimit命令了,但我认为它不会让我模仿延迟这样的东西。我考虑使用VM来运行代码,只是调整内存和CPU,但我不确定它是否足够精细。我还考虑过挂钩一些系统调用,然后在允许读/写系统调用之前旋转x纳秒,但感觉有点笨拙。另一个问题是这个代码主要在Windows上运行,如果可能的话,最好在Windows上执行此操作。

仅仅是为了某些背景,我试图在不同的硬件设置上提供一些合理准确的运行时和资源利用率估算,而无需实际购买,组装和测试所述硬件。

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

如果您希望对机器的每个可能部分进行非常详细的控制,请使用软件模拟机such as Bochs。 Bochs将用软件模拟x86 CPU,硬盘驱动器,视频卡,网卡等等。

为了做你想做的事情,你需要建立你自己的Bochs版本,改变模拟器来控制不同部分的速度。