タグ付けされた質問 「microbenchmark」

11
Javaで正しいマイクロベンチマークを作成するにはどうすればよいですか?
OverаэтотвопросестьответынаStack Overflowнарусском:Какправильнописатьмикро-тестывJava? Javaで正しいマイクロベンチマークをどのように作成(および実行)しますか? 考えるべきさまざまなことを示すコードサンプルとコメントを探しています。 例:ベンチマークは、時間/反復または反復/時間を測定する必要がありますか?その理由は? 関連:ストップウォッチのベンチマークは受け入れられますか?

5
Javaで(a * b!= 0)が(a!= 0 && b!= 0)より速いのはなぜですか?
私はJavaでいくつかのコードを書いています。ある時点で、プログラムのフローは、2つのint変数「a」と「b」が非ゼロであるかどうかによって決定されます(注:aとbが負になることはありません。整数オーバーフローの範囲内には決してありません)。 私はそれを評価することができます if (a != 0 && b != 0) { /* Some code */ } または代わりに if (a*b != 0) { /* Some code */ } 私はそのコードが実行ごとに数百万回実行されることを期待しているので、どちらがより高速になるのか疑問に思いました。ランダムに生成された巨大な配列でそれらを比較することによって実験を行い、配列のスパース性(データの割合= 0)が結果にどのように影響するかを知りたくもありました。 long time; final int len = 50000000; int arbitrary = 0; int[][] nums = new int[2][len]; for (double fraction = 0 …

6
ifステートメントとif-elseステートメントのどちらが速いですか?[閉まっている]
クローズ。この質問はもっと焦点を合わせる必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てるようにします。 3年前に閉鎖されました。 この質問を改善する 先日、この2つのスニペットについて友人と議論しました。どちらが速いのか、そしてその理由は? value = 5; if (condition) { value = 6; } そして: if (condition) { value = 6; } else { value = 5; } value行列の場合はどうなりますか? 注:私はそれvalue = condition ? 6 : 5;が存在することを知っており、より高速になることを期待していますが、それはオプションではありませんでした。 編集(質問は現在保留中のため、スタッフから要求されました): 最適化されたバージョンと最適化されていないバージョンの両方でメインストリームコンパイラ(g ++、clang ++、vc、mingwなど)によって生成されたx86アセンブリまたはMIPSアセンブリのいずれかを検討して回答してください。 アセンブリが異なる場合は、バージョンが高速である理由と時期を説明してください(たとえば、「分岐がないため、分岐に次の問題が発生するため、より良い」)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.