gpt4 book ai didi

c# - 释放输出比 Debug : MD5CryptoServiceProvider. ComputeHash() 慢

转载 作者:行者123 更新时间:2023-11-30 18:35:06 25 4
gpt4 key购买 nike

我通过下面的代码定期计算文件的 MD5 哈希值。这些文件大约有 10MB。当我在 Debug模式(调试 | x64)下运行我的程序时,对 ComputeHash() 的调用需要 35 毫秒,如果在 Release模式(发布 | x64)下构建,则需要 400 毫秒 - 两者都在没有附加调试器的情况下测试,对于同一个文件并重新测试多次。

(我尝试使用 visual studio express 2010 和 2012 - 结果相同)。

如何在 Release模式下获得良好的调试性能?有任何想法吗?提前致谢!

代码:

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();
}

最佳答案

您是否通过 Visual Studio 运行发布版和调试版?如果是这样,请尝试直接在 Visual Studio 之外运行它们。通过 Visual Studio 运行它们将始终将调试器附加到您的进程,从而导致速度变慢。

关于c# - 释放输出比 Debug : MD5CryptoServiceProvider. ComputeHash() 慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15453685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com