.Net6与Framework不同方式获取文件哈希值的性能对比

  • 算法:MD5、SHA1、SHA256、SHA384、SHA512
  • 文件数:200
  • 平台对比:.NET 6 vs .NET Framework 4.7.2

关键代码

csharp 复制代码
// 读取文件夹,获取MD5值
var hashs = new HashAlgorithm[] { MD5.Create(), SHA1.Create(), SHA256.Create(), SHA384.Create(), SHA512.Create() };
var files = dir.GetFiles("*", SearchOption.AllDirectories).OrderBy(f => f.Name).Take(200);
foreach (var hash in hashs)
{
    var map = new Dictionary<string, List<FileInfo>>();
    sw.Restart();
    foreach (var file in files)
    {
        using (var fs = file.OpenRead())
        {
            var md5 = BitConverter.ToString(hash.ComputeHash(fs));
            if (!map.ContainsKey(md5))
                map.Add(md5, new List<FileInfo>());

            map[md5].Add(file);
        }
    }
    sw.Stop();
    var hash_name = hash.GetType().BaseType.Name;
    Console.WriteLine($"{hash_name}:{map.Count},耗时:{sw.Elapsed.TotalMilliseconds}");
}

运行结果

结论

  • .NET 6 的性能确实远比.NET Framework要高;
  • SHA1性能最高,MD5次之,另外几种算法性能远低前两者;
相关推荐
魏杨杨8 小时前
一个程序员眼中的 AI 核心概念,讲透 LLM 、Agent 、MCP 、Skill 、RAG...
ai·.net·agent·claude code
AI行业学习17 小时前
.NET Framework 3.5 官方离线包下载+完整安装教程【2026.5.19】
.net
切糕师学AI19 小时前
.NET 中 CallerMemberName 与 StackTrace 的深度对比
.net·调用栈·stacktrace·callermember
无小道19 小时前
Redis——哈希类型相关指令
redis·算法·哈希算法
承渊政道1 天前
【贪心算法】(经典实战应用解析(六):整数替换、俄罗斯套娃信封问题、可被三整除的最⼤和、距离相等的条形码、重构字符串)
c++·算法·leetcode·贪心算法·排序算法·动态规划·哈希算法
步步为营DotNet1 天前
解锁.NET 11 新境:ASP.NET Core 10 在微服务安全通信的深化与实践
微服务·asp.net·.net
唐青枫1 天前
C#.NET YARP + OpenTelemetry:网关链路追踪实战
c#·.net
rockey6271 天前
AScript异步执行与await关键字
c#·.net·script·eval·expression·异步执行·动态脚本
念何架构之路1 天前
Go语言加密算法
数据结构·算法·哈希算法
叫我少年2 天前
ASP.NET Core 最小 API 快速参考
.net·api