Windows 7マシン上でアルゴリズムテストソフトウェアを実行しています。これは、特定のデータファイルで初めて実行したときに、後続の実行時よりも3〜5倍遅く実行されます。私たちのアルゴリズムは、ファイルを一度に数百バイトずつ読み、50回の読み込み操作ごとに1つの結果を書き戻すだけです。
Windowsのどこかに固有のキャッシング(3GBのファイルではありそうにないと思われるでしょうか?)または他の何かがありますか?最初の走りをスピードアップする方法はありますか?
はい、Windowsにはこれを担当する可能性のあるキャッシュがあります。 msdn.microsoft.com/ja-jp/library/windows/desktop/…
—
Martin von Wittich
特定のファイルに対して一時的に無効にする方法、または一般的に我々が見ていることを確認する方法はありますか
—
Jon Cage
まあ、MSDNによると、あなたはフラグを使用して特定のファイルのキャッシュを無効にすることができます
—
Martin von Wittich
FILE_FLAG_NO_BUFFERING
の中に CreateFile
コール。コードを変更できない場合は、おそらく別の方法に頼らなければならないでしょう。実行の間にキャッシュを空にすることができます。 stackoverflow.com/questions/478340/…
その回答をMartinという回答として投稿した場合は、それを受け入れます。私はあなたが提供したリンクのソフトウェアを使ってキャッシュからファイルをフラッシュすることができました、そしてその結果一貫したベンチマーク結果を生み出しました:)
—
Jon Cage
答えとして投稿しました:)
—
Martin von Wittich