category: C / C++
DATE : 2007/03/11 (Sun)
DATE : 2007/03/11 (Sun)
今回開発している BREW アプレットでは、ファイルからのデータ読み込みが重要な役目を担います。ところが、開発初期の頃はとてもファイル読み込みが遅くて使い物になりませんでした。
(;^ω^)1件データを読み込んで処理するのに2、3秒かかっていました。
ところが、少しコードをいじるだけで劇的に速くなりました。
( ^ω^)というわけで、その少しいじった部分をメモしておきます。
ファイルアクセスを速くするには、以下の2つの方法が簡単で効果的です。
- ファイルを開いたら、処理が一段落するまで閉じないようにする。
- ファイルキャッシュサイズを設定する。
ファイルを開いたら、処理が一段落するまで閉じないようにする
ファイルアクセスが遅かった時のコードでは、データを1件処理するごとに、律儀にファイルのオープン、クローズを繰り返していました。そのため、オープン、クローズ処理のオーバヘッドが処理時間に影響していました。
そこで、ファイルのオープン、クローズはデータ単位ではなく、処理単位で行うようにします。リソースに余裕がある場合は、アプレットの終了まで確保し続けても良いかと思います。
(;^ω^)あまりオープン、クローズを繰り返すと、メモリ領域の断片化を誘発しそうですしね。
ファイルキャッシュサイズを設定する
IFILE_SetCacheSize 関数を使用すると、ファイルキャッシュサイズを設定できます。キャッシュサイズの分だけファイルの内容がメモリ上に保持されるので、データへのアクセスが高速になります。
ただし、設定できるキャッシュサイズは選択制(標準・最小・最大・中間)になっていて、最終的にどの程度確保されるかは機種依存です。
参考文献
PR
●この記事にコメントする
忍者ブログ [PR]