kkamegawa's weblog

Visual Studio,TFS,ALM関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

やはり最初から

お仕事で作っているプログラム、数GB位のCSVファイルからレコード単位で切り出す処理をCの高水準ライブラリ(fgetsなど)で実装していた。とりあえず先に動かしたかったから。
ところが2GB超のシークをテストすると、50分たってようやく該当レコードを見つける有様(^^;。これではいかんと、Windows APIのまずは同期アクセスで書き換えると、同じファイル/検索レコード抽出で大体4分程度になった。秀丸grepはもっと早いが…まぁここから先はもう少し考えよう。高水準ライブラリはバッファ小さいのかな?ちなみに今は1MBくらいでやってます。もっととっても全く問題ないけれど、今のところこんなもので。
.NET FrameworkのFile I/Oでレコード単位に読む処理だとどうなるだろう。時間ができたら試してみよう。ベンチマークは公表しないけどね。私が認識するだけ。