.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次之,另外几种算法性能远低前两者;
相关推荐
遇到困难睡大觉哈哈27 分钟前
Harmony os 网络防火墙实战:用 @ohos.net.netFirewall 给应用加一道“网闸”
网络·.net·harmonyos·鸿蒙
搬砖的工人1 小时前
.NET 9.0 与 Swagger 的集成实践:一步步构建Api文档
.net
唐青枫2 小时前
C#.NET Record Struct 完全解析:语法、语义与最佳实践
c#·.net
TracyCoder1232 小时前
分布式算法(八):一致性哈希——分布式系统的负载均衡利器
分布式·算法·哈希算法
沐浴露z2 小时前
详解Java ArrayList
java·开发语言·哈希算法
唐僧洗头爱飘柔95277 小时前
【区块链技术(03)】区块链核心技术:哈希与加密算法、智能合约;非对称加密算法与默克尔树;智能合约工作原理与区块链的关系
区块链·智能合约·哈希算法·核心技术·非对称加密算法·默克尔树·金融交易
时光追逐者11 小时前
分享5款.NET开源免费的Redis客户端组件库
数据库·redis·开源·c#·.net·.net core
9ilk19 小时前
【C++】 --- 哈希
c++·后端·算法·哈希算法
张人玉1 天前
Prism Template Pack 完整使用示例(VS2022 + .NET 8 + DryIoc)
.net·wpf·prism
j***63081 天前
四大.NET ORM框架深度对比:EF Core、SqlSugar、FreeSql与Dapper的性能、功能与适用场景
.net