1

私はかなり標準的な生産者と消費者のスレッドを持っています:

  • プロデューサーは、ファイルからバイトを読み取り、ブロッキング キューにデコードします。
  • コンシューマはキューからアイテムをポーリングしています

デコード プロセスがボトルネックになることがあり、CPU を増やすことでメリットが得られる可能性があります。プロデューサー時間の 70% です。「デコーダー」スレッドを導入すると、顕著なパフォーマンスが得られますか?

  • プロデューサーは、ファイルからブロッキング「オブジェクト」キューにバイトを読み取ります
  • デコーダーはバイトオブジェクトをアイテムにデコードします
  • 消費者は「デコードされた」アイテムをポーリングしています

メモリ フット プリントのために 1 つのキューを使用する必要があります - 2 つのキュー (バイト/アイテム) を持つ余裕がないので、オブジェクトの "キャスト" オーバーヘッドが存在すると思いますか?

この 3 スレッド ソリューションを実装する方法について何か考えはありますか?

ありがとうございました!

4

2 に答える 2