【问题标题】:How would I simulate running code on different hardware while using only one machine?如何在仅使用一台机器的情况下模拟在不同硬件上运行的代码?
【发布时间】:2012-12-12 13:09:31
【问题描述】:

正如标题所说,我正在寻找一段代码在不同硬件设置上的近似性能。有什么工具可以做到这一点吗?

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

我一直在研究 linux 中的 setrlimit 命令,但我认为它不会让我模拟延迟之类的东西。我考虑过使用虚拟机来运行代码并调整内存和 CPU,但我不确定它是否足够精细。我还考虑了一些事情,比如挂钩一些系统调用并在允许读/写系统调用之前旋转 x 纳秒,但感觉有点笨拙。另一个问题是此代码主要在 Windows 上运行,如果可能,最好在 Windows 上执行此操作。

仅出于一些背景知识,我试图提供一些相当准确的估计,例如在不同硬件设置上的运行时间和资源利用率,而无需实际购买、组装和测试所述硬件。

感谢您提供的任何帮助。

【问题讨论】:

    标签: testing resources benchmarking performance-testing emulation


    【解决方案1】:

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

    为了做您想做的事,您需要构建自己的 Bochs 版本,并更改​​模拟器以控制不同部分的速度。

    【讨论】:

      猜你喜欢
      • 2022-10-24
      • 1970-01-01
      • 2011-08-08
      • 1970-01-01
      • 1970-01-01
      • 2023-02-10
      • 1970-01-01
      • 1970-01-01
      • 2012-05-09
      相关资源
      最近更新 更多