我想要一个软件环境,我可以使用特定资源在硬件上测试我的软件速度。例如,当我的主机硬件是带有12GB RAM的3GHz四核amd64时,这个程序在带有24 Mb RAM的800MHz x86上运行的速度有多快?像qemu这样的仿真器可以像“底层硬件”一样“快速”运行。我想让它运行得慢一些。有没有办法做到这一点?
答案 0 :(得分:3)
我从来没有尝试过,但也许你可以通过在Linux上组合像QEMU或VirtualBox这样的仿真器来实现你想要的东西:
http://cpulimit.sourceforge.net/
如果可以限制仿真器可用的CPU时间,则可以在较慢的计算机上模拟执行结果。但请记住,这只会影响执行速度(或者我希望如此)。
CPU指令集和其他系统功能将保持不变。这意味着,如果不是不可能的话,准确地模拟特定的处理器将是困难的。
此外,使用cpulimit(使用SIGSTOP和SIGCONT重复停止/重启仿真器进程)可能会导致副作用,例如时序不一致,视频显示伪像等。
答案 1 :(得分:0)
在您的模拟器中,保留虚拟“时钟”并在执行每条指令时适当增加它。从那里你可以简单地报告在虚拟时间内执行所花费的时间,或者你可以让你的模拟器一次又一次地睡眠,以使执行速度大致保持在目标中的位置。