問題タブ [microbenchmark]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C++ 仮想呼び出しのコストが派生クラスの数に依存するのはなぜですか?
EDIT : nm の要求により、その冗長性にもかかわらず、使用していた完全なコードを含めました。
仮想呼び出しのオーバーヘッドを調べるために使用していた短いサンプル プログラムを作成しました。
timer.h:
virtual.h:
virtual.cpp:
virtual_impl.cpp:
virtual_impl.cpp を共有ライブラリにコンパイルして、コンパイラが混乱したり、非仮想化またはインライン化されたりするのを防ぎます。
私が得る結果は次のとおりです。
ご覧のとおり、10 個の派生クラスを使用すると、派生クラスが 1 つだけの場合よりもコストが 3 倍近く高くなります。分岐予測はおそらくターゲットのように見えますが、どういうわけかタイプ別にソートされたリストでは、パフォーマンスはランダム リストよりもさらに悪くなります!
EDIT2 : コード生成で黒魔術が発生しているようには見えません。ここで分解を見つけましたmeasure_call
:
java - Caliper 1.0 のコンソール出力
Caliper ~0.5 では、ベンチマークの実行には、ベンチマークの実行ごとに人間が判読できるコンソール出力が付随していました。
この出力は Caliper 1.0 では使用できないようですが、復元する方法はあるのでしょうか?
テキスト出力は、即時のフィードバックとして (特に、ベンチマークやコードの時間を繰り返し調整する場合)、さまざまなテキスト ソースに簡単かつ永続的に埋め込むことができるテキスト出力として非常に役立ちます。Web アプリは、ほとんどの目的で優れています (結果の偏差などの追加の重要な情報が含まれています)。ただし、テキスト出力がありがたい場合もあります。
java - main内でIntelliJの「run」コマンドを使用してキャリパーを実行することは可能ですか?
私はキャリパーを初めて使用します。メイン メソッドを作成し、IntelliJ を使用して右クリックして [実行] を選択できるかどうかを知りたいですか?
上記を実行しようとすると、次のエラーが発生します。
また、IntelliJ を使用しているため、キャリパーは maven のように定義されています (つまり、テスト スコープ)。
コマンドラインからキャリパーを実行するにはどうすればよいですか?
benchmarking - jmhベンチマークでメソッドを生成するには?
jmh( http://openjdk.java.net/projects/code-tools/jmh/ ) を使用して、いくつかのメソッドのベンチマークを行います。また、このメソッドを実行するための引数として使用するパラメーターのセットもあります。特定のパラメーター値ごとにメソッドを生成することは可能ですか (@GenerateMicroBenchmark アノテーションを使用)?
今、私は同様の実装を使用していますが、手作業で多くの統一されたコードを書かなければならないため、あまり便利ではありません:
php - PHP マイクロベンチマーク (変数と条件ステートメント)
この質問は「少し的外れ」かもしれません。しかし、多かれ少なかれそれはコードのマイクロベンチングですが、PHP のバックエンドに関する私の基準と一般的な知識を向上させるためのものです。
それで!では、質問です!変数を 2 回呼び出すと、PHP で追加の else 条件を呼び出すよりもメモリ (および CPU の負荷) が少なくて済みますか? より多くのリソースを必要とするのはどれですか? なぜ?
以下の例:
Aは、変数を 2 回呼び出すことを示し、Bは、追加の else 条件を呼び出すことを示しています。もちろん、どちらも同じ最終結果になります。
回答(応答)への追加の参照も非常に適切です!もし可能なら。
例 A:
例 B:
c - ベンチマーク用に巨大な配列をハードコードする最良の方法
プログラムで整数の巨大な配列をハードコーディングしたいと考えています。ソートアルゴリズムのベンチマークを行いたいので、これを行っています。配列をテキスト ファイルとして保存して読み込むと、単独で並べ替えるのではなく、大きなファイルの読み取り + 並べ替えのパフォーマンスを測定することになります。後でファイルの読み取りをベンチマークします。に直接入れることもできましたが、テキスト エディターがクラッシュする傾向があるため、別のファイルに入れる方法があることを望んでいました。私はそれをするいくつかの方法がありますか?これを行う良い方法はありますか?int vals[] = {<huge number of values here>}
main
#include