私は数時間から数日かかる可能性のある長いシミュレーションを行い、ファイルに情報を記録しています。ファイルは数百Mbのサイズに達することができ、内部には数だけのリストがあります。私は本当にこれが発生しているオーバーヘッドについて懸念しています。私は、このメソッドを使用するオーバーヘッドが本当に大きいかどうか、そして同じような他のより効率的な方法があるかどうかを尋ねたいと思います。ファイル内のログ情報のオーバーヘッド
私はC++を使用しており、ファイルをログに記録するためにfprintfの一般的な方法を使用しています。オーバーヘッドについて説明すると、今度はファイルを使用しないでこの時間がかかります。これは理想的には理想的です。
私はいくつかのテストを行いましたが、ファイルのサイズによってオーバーヘッドが直線的に増加するかどうかはわかりません。私が言っていることは、1Gbのサイズのファイルより1Mbのサイズのファイルに行を追加するのと同じではないかもしれないということです。誰もファイルのサイズとオーバーヘッドがどのように成長するか知っていますか?
こんにちは、あなたの答え、ちょうど好奇心のために、多分私はこれを行うより効率的な方法について可能な場合いくつかのガイドラインを提供することができる将来のユーザーのために感謝します。 – Eduardo
"効率的"という言葉はあまり漠然としていますが、一般的にはより少ないリソースでより多くのことをしようとしています。したがって、通常はボトルネックに焦点を当てます。あまりにも多くのディスクに書き込みますか?より少ないログ。または、より少ないスペースを使用するバイナリ形式でログインします。ディスクに書き込まないでください。 RAMディスクやネットワークドライブなどに書き込みます。 – Nathan
未使用のリソースにも注意してください。プロセスのCPU使用量はほとんどありませんか?タスクが完了するまで、すべてのログをメモリに格納することがあります。プロセスはメモリを大量に消費しますが、CPUは軽いのですか?ディスクに書き込む前にCPU集約型圧縮ツールでログをパイプします。 – Nathan