いう結論に至った話です。して提供されています。パターンによって処理フローをパイプライン的に構成することがあります。LinkedBlockingQueue、果たしてどちらを利用した方がスループットが高くなるのだろうか?」ということ。高スループットだよ」というものになっています。方が高スループット」という結論がにわかに信じ難かったので、実際に検証をしてみることにしました。検証を始める前にまず、それぞれのデータ構造および実装の特性を確認してみることにします。クラス配列をベースとしたキュー実装で、配列をリングバッファとして扱います。キューの大きさは固定長で、その大きさを超える要素数を保持することはできません。エンキュー操作において、余計なオブジェクトが生成されることはありません。共用して排他制御をします。エンキューとデキュー操作のメソッド呼び出しが重なると、一方の処理にてロック解除待ちが生じてしまいます。クラス片方向の連結リストをベースとしたキュー実装です。要素の数に応じて、リストが伸長・縮退します。要素をエンキューします。指定することで、保持する要素数を制限することもできます。オブジェクトの生成操作が発生します。バイトほどのヒープを余計に消費します。エンキューとデキュー操作のメソッド呼び出しが重なったとしても、ロック解除待ちは発生せず並列に処理することができます。オブジェクト生成が必要となるために特にエンキュー操作の処理コストが高い。言うことができそうです。方がスループットが高い、というのは後者の並列性が根拠になっていると思われますね。それぞれの実装ごとに測定してみました。違いが性能に影響を与えることが明らかになったため、これらの構成の組み合わせも合わせて検証してみることにしました。数値に対するカラースケールは行(横一列)のグループに対して設定されており、緑色が良い性能であることを、黄色がほどほどの性能を、赤色が性能が悪いことを示します。方が性能がよい、ということになりますね。それぞれの性能特徴がよく分かる結果となっています。開きは見られず、安定した性能が出せていることがうかがえます。ときより大幅に性能向上することが見て取れます。ないものの多少の性能向上がうかがえます。