.Net6与Framework不同方式获取文件哈希值的性能对比
作者:小教学发布时间:2023-09-29分类:程序开发学习浏览:70
导读:算法:MD5、SHA1、SHA256、SHA384、SHA512文件数:200平台对比:.NET6vs.NETFramework4.7.2关键代码//读取文件夹,获...
- 算法:MD5、SHA1、SHA256、SHA384、SHA512
- 文件数:200
- 平台对比:.NET 6 vs .NET Framework 4.7.2
关键代码
// 读取文件夹,获取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次之,另外几种算法性能远低前两者;
- 程序开发学习排行
-
- 1鸿蒙HarmonyOS:Web组件网页白屏检测
- 2HTTPS协议是安全传输,为啥还要再加密?
- 3HarmonyOS鸿蒙应用开发——数据持久化Preferences
- 4记解决MaterialButton背景颜色与设置值不同
- 5鸿蒙HarmonyOS实战-ArkUI组件(RelativeContainer)
- 6鸿蒙HarmonyOS实战-ArkUI组件(Stack)
- 7鸿蒙HarmonyOS实战-ArkUI组件(GridRow/GridCol)
- 8[Android][NDK][Cmake]一文搞懂Android项目中的Cmake
- 9鸿蒙HarmonyOS实战-ArkUI组件(mediaquery)
- 最近发表
-
- WooCommerce最好的WordPress常用插件下载博客插件模块的相关产品
- 羊驼机器人最好的WordPress常用插件下载博客插件模块
- IP信息记录器最好的WordPress常用插件下载博客插件模块
- Linkly for WooCommerce最好的WordPress常用插件下载博客插件模块
- 元素聚合器Forms最好的WordPress常用插件下载博客插件模块
- Promaker Chat 最好的WordPress通用插件下载 博客插件模块
- 自动更新发布日期最好的WordPress常用插件下载博客插件模块
- WordPress官方最好的获取回复WordPress常用插件下载博客插件模块
- Img to rss最好的wordpress常用插件下载博客插件模块
- WPMozo为Elementor最好的WordPress常用插件下载博客插件模块添加精简版