INIファイルアクセスの高速化
Posted: 2010年11月20日(土) 09:27
こんにちは。INIファイル等を使った外部ファイルアクセスについて教えてください。
現在とあるシステムの外部ファイルによる設定の入出力等をメンテナンスしています。
色情報を取得するという処理がボトルネックとなっていて
COLO001~COL512までのキーをINIファイルから取得するという処理があります。
以前は32程度だったらしく問題ではなかったようです。
この解決策としてセクション単位で取得した後、バッファからパラメータを読むようにしました。
1.セクションで取得する際のバッファについて
同様のボトルネック解決のために、処理をクラス化して共通化したのですが
セクション単位で読む時のバッファ確保サイズをどう決めるのかに困りました。
現在はINIファイルのファイルサイズ分バッファを確保しています。
固定バッファで持って戻り値をチェックして失敗したら再試行という手もあるのですが、
何かしら必要サイズがスマートに分かる手法がないかお聞きしたいです。
2.INI等のメモリ化?
INIファイル等の外部アクセスをする際にメモリに取り込んでGetPrivateProfileString等を実行する、
または代替処理はないのでしょうか?
本題である高速化にあたるのですが、何か良い手段はないでしょうか?
※ 前提として既に提供している資産の活用があるため、
カンマ区切り等にするという手法が既存パラメータに対しては難しくなっています。
以上です、よろしくお願いします。
現在とあるシステムの外部ファイルによる設定の入出力等をメンテナンスしています。
色情報を取得するという処理がボトルネックとなっていて
COLO001~COL512までのキーをINIファイルから取得するという処理があります。
以前は32程度だったらしく問題ではなかったようです。
この解決策としてセクション単位で取得した後、バッファからパラメータを読むようにしました。
1.セクションで取得する際のバッファについて
同様のボトルネック解決のために、処理をクラス化して共通化したのですが
セクション単位で読む時のバッファ確保サイズをどう決めるのかに困りました。
現在はINIファイルのファイルサイズ分バッファを確保しています。
固定バッファで持って戻り値をチェックして失敗したら再試行という手もあるのですが、
何かしら必要サイズがスマートに分かる手法がないかお聞きしたいです。
2.INI等のメモリ化?
INIファイル等の外部アクセスをする際にメモリに取り込んでGetPrivateProfileString等を実行する、
または代替処理はないのでしょうか?
本題である高速化にあたるのですが、何か良い手段はないでしょうか?
※ 前提として既に提供している資産の活用があるため、
カンマ区切り等にするという手法が既存パラメータに対しては難しくなっています。
以上です、よろしくお願いします。