.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次之,另外几种算法性能远低前两者;
相关推荐
微小冷3 小时前
海康威视相机C#二次开发环境配置
数码相机·c#·.net·海康威视·相机开发
唐青枫7 小时前
别只会解析参数:C#.NET Spectre.Console.Cli 命令行工具实战详解
c#·.net
看浪的路人9 小时前
第2讲:一致性哈希——数据分片与负载均衡
算法·哈希算法
rockey6271 天前
基于AScript的Lua脚本语言发布啦
c#·.net·lua·script·动态脚本
半亩码田1 天前
【.NET新特性·第11篇】C# 14 字段属性:告别手写 backing field
java·c#·.net
福大大架构师每日一题1 天前
Redis 8.10.0 正式发布:紧凑哈希、批量导入、备份恢复、流与时序能力全面升级
数据库·redis·哈希算法
唐青枫1 天前
别再把命令行参数写成一团:C#.NET System.CommandLine 实战详解
c#·.net
hez20101 天前
让 .NET 11 的泛型虚方法变得更快!
c#·.net·.net core·clr·compiler
宝桥南山1 天前
Microsoft Agent Framework(.NET) - 尝试一下从MCP Server上获取Agent Skills
ai·微软·c#·aigc·.net·.netcore
海盗12342 天前
微软技术日报·2026-08-12——Windows 11多通道累积更新推送十余项功能改进;.NET WebSocket DoS紧急修复
windows·microsoft·.net