問題タブ [jmh]
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.
performance - OpenJDK JMHの「スコアエラー」とは正確にはどういう意味ですか?
ベンチマークにhttp://openjdk.java.net/projects/code-tools/jmh/を使用していますが、次のような結果が得られます。
p>「スコアエラー」列は正確には何を意味し、どのように解釈するのですか?
java - jmh 一致するベンチマークはありません。正規表現のスペルミス?詳細出力には -v を使用します。
JMHを理解するためにサンプルアプリケーションを実装しています。実行中に問題が発生しました。このエラーを見つけました
これが私のコードです。
この問題に関連する多くの投稿を見つけましたが、明確な答えはありません。簡単に説明してください。
jmh - JMH: スコア値は何を意味するのですか?
JMH の結果のスコア属性がわかりません。私もそれについてウェブ上で何も見つけられません。
誰が私にそれが何であるかを教えてもらえますか? 私が理解している限り、高いスコアは低いスコアよりも優れていますが、それは正確には何を意味し、どのように計算されますか?
java - JMH が異なるフォークを実行するのはなぜですか?
JMH ベンチマーク フレームワーク ( http://openjdk.java.net/projects/code-tools/jmh/ ) を使用して、コードのベンチマークを実行しています。私の理解では、JMH は、実行中に JVM によって実行されるジャストインタイム (JIT) プロファイリングによって構築されたプロファイルを破棄するために、ベンチマーク中に JVM を複数回フォークします。
これが以下のような場合に役立つ理由を理解しています ( http://java-performance.info/jmh/から逐語的にコピー):
デフォルトでは、JHM は各トライアル (反復のセット) ごとに新しい Java プロセスをフォークします。これは、以前に収集された「プロファイル」 (ロードされた他のクラスとその実行情報に関する情報) からテストを防御するために必要です。たとえば、同じインターフェースを実装する 2 つのクラスがあり、両方のパフォーマンスをテストする場合、最初の実装 (テスト順) は、2 番目の実装 (同じ JVM 内) よりも高速になる可能性があります。 2 番目の実装を検出した後、インターフェイス メソッド呼び出しを使用して最初の実装に直接メソッド呼び出しを行います。
ただし、同じコードを繰り返しベンチマークしている場合、200 回の反復で 1 つのフォークを実行する代わりに、それぞれ 20 回の反復で 10 のフォークを実行することに利点はありますか?
どうもありがとう、
ダニー
java - Arrays.stream().map().sum() の不安定なパフォーマンス
プリミティブ配列に対する非常に単純な map/reduce 操作の非常に不安定なパフォーマンス プロファイルのインスタンスを偶然見つけました。これが私のjmhベンチマークコードです:
そして、ここに典型的な出力のスニペットがあります:
重要な瞬間は反復 13 と 113 で発生します。最初にパフォーマンスが 10 分の 1 に低下し、その後回復します。対応する時間は、テスト実行の 2.5 秒と 22.5 秒です。これらのイベントのタイミングは、配列のサイズ (BTW) に非常に敏感です。
この種の行動を説明できるものは何ですか? JIT コンパイラーは、おそらく最初の繰り返しで作業を完了しました。話すGCアクションはありません(VisualVMで確認済み)...どのような説明についても完全に途方に暮れています。
Java の私のバージョン (OS X):