• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:freadでファイルを読み込んだ際の処理時間について)

freadでファイルを読み込んだ際の処理時間について

このQ&Aのポイント
  • freadを使用してファイルを読み込む際に、BUFSIZEのサイズによって読み込み速度が異常に高くなる問題が発生しています。
  • メモリにキャッシュされたデータを直接読み込んでいる可能性があり、回避策が見つかっていません。
  • アドバイスをいただける方がいれば、ご教示いただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こういう目的でfreadのような高水準I/O関数使うと正確な結果は得られません。 WindowsならWinAPI,Linuxならシステムコール使い、 キャッシュを使用しない設定でファイルを開いて読み書きすれば、それなりに安定したデータが得られると思います。 あと一回で1GBもメモリ確保したらスラッシングが起きてませんかね? これも結果を不正確にする要素なのでもう少し小さいサイズ(20MB位)から始めた方がいいです。

Kitz_S
質問者

お礼

ご回答有難うございます。 やはり低水準入出力使わないと駄目でしたか…… Linuxのシステムコールは若干経験があったのですが、WindowsではWINAPIを使えば良かったのですね。キャッシュを無効にして読み出す方法がある事を知り大変勉強になりました。 ご指摘の通り、WIN32APIのCREATE_FILEでFILE_FLAG_NO_BUFFERINGのフラグを立てて読み出しを行ったところ、ほぼ正確な値を得ることができました。 悩んでいた事を解決できすっきりしました。 メモリ確保容量も確かに1GBはどう考えてもまずいですよね。こちらも再考してみます。有難うございました。

すると、全ての回答が全文表示されます。
このQ&Aのポイント
  • prara光回線を20年間契約していたが、11月に他社に変更した際にひかりTVの契約を知らず、初めて請求督促のはがきが届いた。
  • 先月分の支払いは済んだが、今後は支払わないと伝えている。
  • ドリームという現在のプロバイダーに変更したが、今月も請求督促のはがきが届いて困っている。
回答を見る

専門家に質問してみよう