.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次之,另外几种算法性能远低前两者;
相关推荐
InCerry10 小时前
为 .NET 10 GC(DATAS)做准备
性能优化·c#·.net·gc
关关长语13 小时前
(一) Dotnet使用MCP的Csharp SDK
网络·.net·mcp
Net_Walke16 小时前
【散列函数】哈希函数简介
算法·哈希算法
syty202018 小时前
简简单单区块链
算法·哈希算法
杰 .19 小时前
C++ Hash
数据结构·c++·哈希算法
喵叔哟20 小时前
7. 从0到上线:.NET 8 + ML.NET LTR 智能类目匹配实战--反馈存储与数据治理:MongoDB 设计与运维
运维·mongodb·.net
超级大只老咪20 小时前
哈希表(算法)
java·算法·哈希算法
.NET修仙日记21 小时前
SQL Server实战指南:从基础CRUD到高并发处理的完整面试题库
面试·职场和发展·c#·.net·sql server·.net全栈经典面试题库
weixin_456904271 天前
基于.NET Framework 4.0的串口通信
开发语言·c#·.net
yuyuyui1 天前
Roslyn 技术解析:如何利用它做代码规范检查与运行时代码生成?
.net