正如标题所说,我正在寻找一段代码在不同硬件设置上的近似性能。有什么工具可以做到这一点吗?
我希望通过限制进程可用的资源来运行我的代码并执行测量。我想控制诸如总可用内存和 cpu 使用率之类的东西,但如果我有更多的粒度会更好。是否有任何工具可以让我模拟不同速度的 RAM、限制 CPU 速率(比如 X gigaflops)、减慢磁盘读取速度等?
我已经研究过 linux 中的 setrlimit 命令,但我认为它不会让我模拟延迟之类的东西。我考虑过使用 VM 来运行代码并调整内存和 cpu,但我不确定它是否足够精细。我还考虑过 Hook 一些系统调用,并在允许读/写系统调用之前旋转 x 纳秒,但感觉有点笨拙。另一个问题是此代码主要在 Windows 上运行,如果可能,最好在 Windows 上执行此操作。
仅作为一些背景知识,我正在尝试对不同硬件设置上的运行时间和资源利用率等问题提供一些合理准确的估计,而无需实际购买、组装和测试所述硬件。
感谢您提供的任何帮助。
最佳答案
如果您希望对机器的每个可能部分进行非常详细的控制,请使用软件模拟机 such as Bochs . Bochs 将在软件中模拟 x86 CPU、硬盘驱动器、视频卡、网卡,一切。
为了做您想做的事,您需要构建自己的 Bochs 版本,并更改模拟器以控制不同部分的速度。
关于testing - 我如何在只使用一台机器的情况下模拟在不同硬件上运行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14049679/