0

数時間から数日かかる長いシミュレーションを行っており、情報をファイルに記録しています。ファイルは数百 MB のサイズに達する可能性があり、その中には数字のリストだけがあります。これが発生しているオーバーヘッドについて本当に心配しています。この方法を使用することのオーバーヘッドが本当に大きいかどうか、また、同じことを行うためのより効率的な方法が他にある場合は、情報をログに記録することをお勧めします。

私は C++ を使用しており、ファイルをログに記録するために、fprintf の一般的な方法を使用しています。オーバーヘッドを説明するには、今回は使用せずに今回かかるファイルを使用するなどの実用的な例を挙げることができれば、それが理想的です。

いくつかのテストを行いましたが、オーバーヘッドがファイルのサイズに比例して増加するかどうかはわかりません。私が言いたいのは、サイズが 1Mb のファイルに行を追加することと、サイズが 1Gb のファイルに行を追加することは同じではないということです。ファイルのサイズに応じてオーバーヘッドがどのように増加するかを知っている人はいますか?

4

3 に答える 3

4

封筒裏の計算が必要なだけだと思います。

「数百Mb」を400MBとします。
「数時間から数日」を48時間とします。

(400 * 1024 * 1024バイト)/(3600 * 48秒)=2427バイト/秒

明らかに、システムを監視するか、計算に実数を使用できますが、上記の概算を使用すると、約2KB /秒を記録します。これは、平均的なハードドライブの制限と比較すると非常に簡単です。

ですから、いいえ、オーバーヘッドはそれほど大きくはないようです。そして、はい、それを行うためのより効率的な方法がありますが、あなたの数があなたが述べたものと大きく異なる場合を除いて、あなたはおそらくあなたが得るわずかな節約のために価値があるより多くの時間と労力を費やすでしょう。

于 2009-02-26T17:54:49.753 に答える