非常に幅広い CPU とアーキテクチャ (組み込みデバイスに非常に近いものもあります) で実行されるはずのアプリケーションで、いくつかのボトルネックを最適化しようとしています。
ただし、私のプロファイラーの結果は、私の CPU の速度のためにあまり重要ではありません。プロファイリングの目的で CPU の速度を制限する方法はありますか (できれば Windows または Mac OS X で)。
仮想マシンを使用することを考えましたが、そのような機能を備えたものは見つかりませんでした。
これはうまく機能し、マルチコアをサポートします。 http://www.cpukiller.com/
パフォーマンスの問題がどこにあるかを知るには、コードの速度を知る必要があるというのはよくある誤解です。これは、問題発見と問題測定を混同しています。
プログラムに無駄なロジックがあると、どのCPUで実行しても無駄になります。
あなたが知る必要があるのは、それがどこにあるかです。測定のために、その大きさを知る必要はありません。修正が必要な大きさであることだけを知っておく必要があります。
通常、さまざまなサイズの問題がいくつかあります。おそらく最初に最大のものを見つけますが、それらを修正する順序に関係なく、修正するたびに残りのものを見つけやすくなります。
お住まいの地域で古いハードウェアを探し始める以外に、答えはわかりません。(通常)物事に影響を与える可能性のある変数はCPUだけではありません。L1 / L2キャッシュサイズ、メモリバス速度、メモリ速度/遅延、ハードドライブ速度などはすべて、多くのアプリケーションで重要な要素です。
最近、Downloadsquad.com にアプリがありました。私はそれの名前を覚えていませんが、それはプロセッサーとタスクマネージャーでいくつかの楽しいものでした. どのアプリがどの CPU にあるかを管理することだけだったかもしれませんが、おそらくこれが得られるでしょう。今日の午後に探して、見つけたら返信します。
仮想マシンを使用することを考えましたが、そのような機能を備えたものは見つかりませんでした。
その機能を明示的に提供する VM が必要なのはなぜですか? ホスト OS で VM の CPU 使用率を制限するだけです (通常のプロセスである場合)。それはまったく同じ効果があるはずです。
これは、たとえばLinux でcpulimitを使用して行うことができます。MS Windows にも同様のソリューションがあります。
多くのプロファイラー (たとえば、oprofile - ただし、これは Linux のみ) では、データを収集する頻度を設定できます。プロファイラーがこれをサポートしているかどうかを確認し、サポートしていない場合は別のプロファイラーを試してください。