以下のコードで定期的にファイルのMD5ハッシュを計算しています。ファイルは約10MBです。プログラムをデバッグモード(Debug | x64)で実行すると、ComputeHash()の呼び出しに35ミリ秒かかり、リリースモード(リリース| x64)でビルドした場合は、400ミリ秒かかります。どちらもデバッガーを接続せずに同じファイルに対してテストし、再テストしました。ミューティルタイム。
(Visual Studio Express 2010と2012で試しました-同じ結果です)。
リリースモードで良好なデバッグパフォーマンスを得るにはどうすればよいですか?何か案は?前もって感謝します!
コード:
public static string GetMD5HashFromFile(string fileName)
{
StringBuilder sb = new StringBuilder();
if (File.Exists(fileName))
{
var stream = File.Open(fileName, FileMode.Open, FileAccess.Read, IO.FileShare.ReadWrite);
MD5 md5 = MD5.Create();
//for benchmarking
var s = Stopwatch.StartNew();
byte[] retVal = md5.ComputeHash(stream);
//for benchmarking
System.Windows.MessageBox.Show(s.ElapsedMilliseconds.ToString());
stream.Close();
for (int i = 0; i < retVal.Length; i++)
sb.Append(retVal[i].ToString("x2"));
}
return sb.ToString();
}