.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次之,另外几种算法性能远低前两者;
相关推荐
tqs_123452 小时前
redis zset 处理大规模数据分页
java·算法·哈希算法
咕白m6253 小时前
C# Excel 读取入门教程:免费实现方法
c#·.net
唐青枫8 小时前
FluentData 从入门到精通:C#.NET 数据访问最佳实践
c#·.net
摸鱼仙人~20 小时前
一文详解 Python 密码哈希库 Passlib
开发语言·python·哈希算法
余衫马1 天前
开发指南:使用 MQTTNet 库构建 .Net 物联网 MQTT 应用程序
物联网·mqtt·.net
序属秋秋秋1 天前
《C++进阶之STL》【哈希表】
数据结构·c++·stl·哈希算法·散列表·哈希表·哈希
William Wang~2 天前
.net 类库生成的DLL源码混淆加密
.net
Pluchon2 天前
硅基计划3.0 Map类&Set类
java·开发语言·数据结构·算法·哈希算法·散列表
一个帅气昵称啊2 天前
Docker命令大全:从基础到高级实战指南
docker·容器·eureka·架构·.net
Eiceblue2 天前
使用 C# 设置 Excel 单元格格式
开发语言·后端·c#·.net·excel