■68509 / ) |
Re[1]: HDD書き込み遅延 |
□投稿者/ オショウ (94回)-(2013/10/24(Thu) 18:04:14)
|
> 512KBのデータを60ms間隔で2時間、ファイル出力するプログラムを作成しています。 > (ファイル名は出力する直前にGetLocalTime()で取得したミリ秒までの値をファイル名としています)
なかなかハードいじめな仕様ですネ! PCとHDDの性能にモロに依存していると思います。
HDDへのライト動作は、一番時間を要します。 通常、遅延書き込みは、5秒程度だったと思いますので・・・
512KB * 16 * 5 = 約40MB
実際にはOSのキャッシュに十分入るサイズですが・・・OSはそれ以外 の仕事もしているので、すべてをアプリでぶんどることはできません。
通常、遅延書き込みを嫌うならキャッシュさせない方法で書き込みで きますが、おそらくもっと少ないファイル数になると思います。
2時間行うということですので
512 * 16 * 60 * 60 * 2 = 約60GB
HDDに書くかわりに、SSD を搭載してそこに書き込むようにすれば、 書き込み時間は短縮されますので、数が少なるなることは低減でき ると思います。
あとは、60ms間隔と言う部分ですネ! ハードウェアタイマーとか割り込み使ってサイクリックな動作を行う ようなプログラム構造ですか? それとも無限ループ作って、Sleep(60)とかしてますか? この場合は、ハードウェアタイマー使って割り込み動作でサイクリッ クな動作にしないと、CPUの負荷変動でSleepから指定時間内に復帰し てこなくなる為、当然、書き込みファイル数は少なくなります。
あと、その書き込む機能をスレッドにして優先順位を高くするとか・・・ より優先度を獲得したいなら、Windowsサービスにするとか・・・
以上。参考まで
|
|