高頻度取引ソフトウェアに遅延を導入したくないと同時に、毎秒数千行のログを保存する必要があります。1 ミリ秒の遅延は膨大です。0.01 ~ 0.05 ミリ秒の遅延に同意するだけです。
*今*私は、起動時にメモリに 500 Mb を割り当て、そこにログを保存し、アプリケーションが終了したら、このログをディスクに置きます。
しかし今、私はより多くのログが必要であり、アプリケーションの実行中にログが必要であることに気付きました。そのため、アプリケーションの実行中にログを保存したいと考えています (おそらく 1 分に 1 回または 10 分に 1 回)。どのくらい遅いStreamWriter.WriteLine
ですか?「事前に割り当てられたコレクションに追加する」よりも遅くなりますか?
直接使用する必要がありますStreamWriter.WriteLine
(同期か非同期か、AutoFlush
オプションはパフォーマンスに影響しますか?)。またBlockingCollection
、ログに項目を追加し、専用スレッドを使用してこのブロッキング コレクションを処理し、ログを別のスレッドでディスクに保存することもできます。