3

以下のコードで定期的にファイルの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();
}
4

1 に答える 1

0

リリース バージョンとデバッグ バージョンを Visual Studio 経由で実行しますか? その場合は、Visual Studio の外部で直接実行してみてください。Visual Studio 経由でそれらを実行すると、常にデバッガーがプロセスにアタッチされ、速度が低下します。

于 2013-05-20T01:26:20.460 に答える