ベンチマークを数回実行し、平均値を書き留めます。しかし、私は、最初の実行の後で、その後の実行がより速いことに気付きます。私はそれが命令キャッシュと関係があると思うので、次回にプログラムを実行すると、ベンチマークはすでにキャッシュに命令を持っています。コールド命令とデータキャッシュの両方でプログラムを開始する方法はありますか?コールドキャッシュを使用してプログラムを起動する方法
6
A
答えて
4
これは正常な動作です。この問題を回避する1つの方法は、メイン実行前にウォームアップすることはほとんどありません。これらのウォームアップ・ランは、以前に実行していたプログラムを成長させたキャッシュ・メモリーを上書きします。平均値を計算している間、ウォームアップラン値を除外するのは、実際に実行するだけです。これらのアプローチをとるさまざまなベンチマーキングツールがあります。 kernbench、lmbenchなど。ウォームアップ値が利用可能な場合。
実行中のベンチマークがディスクから読み込む必要のあるデータに依存する場合、ディスクキャッシュにも影響があります。可能な場合は、これらのデータをRAMにキャッシュする方法があります。このテクニックは、ディスクキャッシュ関連の問題を避けるためにkernbenchで使用されています。
関連する問題
- 1. プログラムを起動してシェルを起動する方法
- 2. バッチを使用してプログラムを自動再起動する
- 3. C#のプログラムを起動スイッチを使用して起動するプロセス
- 4. powershell:パラメータを使用してプログラムを起動するスクリプト?
- 5. 'system(...)'を使用してプログラムからコマンドプロンプトを起動する
- 6. C#でホットキーを使用してプログラムを起動するには?
- 7. web.xmlを使用してプログラムで起動するjetty
- 8. shouldOverrideKeyEventを使用してJavascript関数を起動する方法
- 9. process.startを使用してsetup.exeファイルを起動する方法
- 10. javaを使用してサーバーを起動する方法は?
- 11. NFC - NDEF_DISCOVEREDを使用してアプリを起動する方法
- 12. 1クロックパルスイネーブルを使用してカウンタを起動する方法
- 13. angularJSを使用してhtmlページを起動する方法
- 14. groovyでURLを使用してインスタンスを起動する方法
- 15. マルチプロセスを使用してPythonでデーモンを起動する方法
- 16. .batファイルを使用してappium 1.6.5を起動する方法
- 17. powershellを使用してメールアプリケーションとカレンダーアプリケーションを起動する方法
- 18. Pacemakerを使用してhttpdを再起動する方法
- 19. Javaコードを使用してios_webkit_debug_proxyを起動する方法
- 20. AWS cloudformを使用してEC2インスタンスを起動する方法
- 21. バージョンコントロールを使用して起動する方法
- 22. UIViewのタップジェスチャ認識プログラムをプログラムで起動する方法
- 23. プログラム内のJavaプログラムを再起動する方法
- 24. C#プログラムを使用してDLLを起動
- 25. デバイスを起動する方法、ラズベリーパイのプログラムを自動実行する方法
- 26. C++ makefile install:起動時にプログラムを起動してリブートする
- 27. 私はプログラムを起動する方法が異なる動作
- 28. システム起動時にrc.localファイルを使用してプログラムを起動するのは正しいですか?
- 29. 動的パラメータを使用してJava Web Startアプリケーションを起動する方法
- 30. VSコードを使用してPHPを起動してデバッグする方法は?
ディスクキャッシュの可能性が高いと思いますか? –
これは、CPUキャッシュのためではなく、プログラムとデータがディスクから読み取られたためです。 – sharptooth
いい質問です! –