10

特定のリソースを備えたハードウェアでソフトウェアの速度をテストできるソフトウェア環境が必要です。たとえば、ホスト ハードウェアが 12GB の RAM を搭載した 3GHz クアッド コア amd64 である場合、このプログラムは 24Mb の RAM を搭載した 800MHz x86 でどのくらいの速度で実行されますか? qemu などのエミュレーターは、基盤となるハードウェアと「ほぼ同じ速度」で動作するという点で優れています。動作を遅くしたいです。それを行う方法はありますか?

4

2 に答える 2

2

私は試したことはありませんが、QEMU や Linux の VirtualBox などのエミュレーターと次のようなものを組み合わせることで、ある程度は実現できるかもしれません。

http://cpulimit.sourceforge.net/

エミュレーターで使用できる CPU 時間を制限できる場合は、低速のコンピューターで実行結果をシミュレートできる場合があります。ただし、これは実行速度にのみ影響することに注意してください (または、いずれにせよそう願っています)。

CPU 命令セットおよびその他のシステム機能は変更されません。つまり、特定のプロセッサを正確にエミュレートすることは、不可能ではないにしても困難です。

さらに、SIGSTOP および SIGCONT を使用してエミュレータ プロセスを繰り返し停止/再起動する cpulimit のようなものを使用すると、タイミングの不一致、ビデオ表示のアーティファクトなどの副作用が発生する可能性があります。

于 2010-11-19T01:27:42.973 に答える
0

エミュレーターでは、仮想「クロック」を保持し、各命令を実行するたびに適切にインクリメントします。そこから、仮想時間で実行にかかった時間を簡単に報告するか、エミュレーターを時々スリープさせて、実行速度をターゲット内のおおよその速度に保つことができます。

于 2010-11-19T00:29:56.323 に答える