2010-11-19 2 views
9

特定のリソースを持つハードウェアでソフトウェアの速度をテストできるソフトウェア環境が必要です。たとえば、ホストハードウェアが12GBのRAMを備えた3GHzクアッドコアのamd64の場合、このプログラムは800MHzのx86と24MbのRAMでどれだけ高速に動作しますか? qemuのようなエミュレータは、基盤となるハードウェアと同じくらい速く走ることができます。私はそれをより遅くするようにしたいと思います。それを行う方法はありますか?クロック速度を含むプロセッサの限られたリソースをエミュレートする

+0

プロセッサ速度については、VirtualBox、Parallels DesktopなどのVMを使って確実にRAMを制御できます。 –

+0

はい、メモリは問題ではないと思います。問題はスピードと他のリソースです。私はそれがあらゆる点で実際のハードウェアのようなものになりたいので、フレーズに包括的です。私は、すぐに使える解決策があることを望んでいましたが、明らかにそうではないので、私はそれを少しずつ取り上げます。 – Liam

答えて

0

エミュレータでは、仮想の "時計"を保持し、各命令を実行するときに適切に増分します。そこから、仮想時間の実行にどれくらいの時間がかかったかを簡単に報告することができます。エミュレータを覚えておいて、実行速度を目標のどこに近づけることもできます。

+0

これは難しいです。私はこれがホストOSやゲストOSに実装されるかどうかはわかりませんが、私はどちらかの方法でそれをする能力がないと思います。 – Liam

+0

@Liam:また、どのように遅くて速いのかを感じ取ることはできません。デスクトップアプリケーションまたは他のインタラクティブソフトウェア。マルチメディアアプリケーションもテストするのが難しいでしょう。 – thkala

2

私はそれを試したことがない、おそらくあなたは、このような何かをLinux上でQEMUかVirtualBoxのようなエミュレータを組み合わせることにより、あなたはある程度欲しいものを達成できる:あなたが制限することができた場合は

http://cpulimit.sourceforge.net/

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

CPU命令セットおよびその他のシステム機能は変更されません。つまり、固有のプロセッサを正確にエミュレートすることは不可能ではないにしても困難です。繰り返し停止するSIGSTOPとSIGCONTを使用して動作しますCPULIMITのようなものを使用して、また

、/エミュレータプロセスは、などのタイミングの不整合、ビデオ・ディスプレイ・アーティファクトなどの副作用を引き起こす可能性があります再起動

私はわからない
+0

これは興味深いものです。私はcpulimitについて知らなかった。それは完全な解決策ではありませんが、私が探しているものの中で最も重要な「欠けている部分」です。私は、メモリ制限がほとんどのエミュレータですでに設定できると考えているからです。私は実際には他のプロセッサをエミュレートしていないことを認識しています(例えば、qemuがx86ファミリの特定のメンバーを具体的にエミュレートしない限り)。 – Liam

+0

* cpulimit *はうまく動作します。 OKゲストOSはまだ物理CPU速度を表示しますが、使用可能な速度はcpulimitによって設定されます。例えば'cpulimit -l 5 -s qemu-system-i386 -cpu pentium -m 32 'はPentium 166MHzをかなり現実的にエミュレートします。感謝@スカルラ。 – tuk0z

関連する問題