コンテキスト
オンライン市場データをリアルタイムで読み取り、それをディスクに書き込むソフトウェアを作成しました。各セキュリティは、マルチスレッド カスタム キュー バックグラウンド ワーカーを介して 1 つのファイルに書き込まれます。
Worker_Q_Security_A > File_A (追加)
Market Data > Worker_Q_Security_B > File_B (追加)
Worker_Q_Security_C > File_C (追加)
メッセージごとにワーカー インスタンスが作成されてキューに入れられ、リアルタイム リーダーの負荷が軽減され、そのレベルでのボトルネックが回避されます。
問題
現在起こっていることは、データの量が増えるにつれて、書き込みよりも速くデータを受け取るようになっているということです。これにより、ワーカー キューが増大し、書き込まれたデータがますます遅延します。
速度のパフォーマンスを向上させ、より速く、低遅延で書き込みを可能にし、書き込み作業者レベルでのボトルネックを回避するのに役立つアドバイスは何ですか?
EDIT :
私は、Pooya Khamooshi の QueuedBackgroudWorker のカスタマイズされたバージョンを使用しています
。到着順でティック書き込みをスレッド化されたシステムに委譲できるアーキテクチャを設計する方法がわかりません。ティックごとに 1 つのワーカーを作成することは避けてください。