BenchmarkDotNet 是属于 .Net 基金会的一个项目,本文将简要介绍该项目相关的信息。
中文介绍
中文介绍内容翻译自英文介绍,主要采用意译、如与原文存在出入,请以原文为准。
BenchmarkDotNet
BenchmarkDotNet 是一款功能强大的.Net基准测试类库。
概要说明
- 包含标准基准测试所需要的常规操作:为每个基准测试方法生成隔离的项目;自动选择迭代的次数;自动预热测试;运行开销评估;统计数据汇总等等
- 支持以下运行时环境:传统 .NET Framework、.NET Core (RTM) 和 Mono
- 支持以下编程语言: C#、 F# 和 Visual Basic
- 支持以下操作系统: Windows、 Linux 和 MacOS
- 能够轻松对比不同环境下的运行效果,例如:
x86
与x64
的对比,LegacyJit
与RyuJit
的对比。详细可以参看Jobs - 支持以下报表类型: markdown, csv, html, 普通文本 和 png 格式的图表.
- 支持高级特性:设置测试基线(Baseline),参数化测试(Params)
- 基于 ETW 事件实现强大的程序诊断支持,详见BenchmarkDotNet.Diagnostics.Windows
项目详情
- 官网地址
- 项目源码
- 项目许可证: MIT
- NuGet
- 项目联系人: Andrey Akinshin
相关链接
笔者简评
您的代码性能更高?来吧,Benchmark 跑一波!
BenchmarkDotNet 提供了进行小范围代码性能测试的基础框架。它已经成为当前 .NetCore 底层开发类库事实上的基准测试框架。
基于这样的框架,开发者可以对自己的函数代码进行基准测试。也可以完成一些有意思的小测试:
英文介绍
BenchmarkDotNet
BenchmarkDotNet is a powerful .NET library for benchmarking.
Summary
- Standard benchmarking routine: generating an isolated project per each benchmark method; auto-selection of iteration amount; warmup; overhead evaluation; statistics calculation; and so on.
- Supported runtimes: Full .NET Framework, .NET Core (RTM), Mono
- Supported languages: C#, F#, and Visual Basic
- Supported OS: Windows, Linux, MacOS
- Easy way to compare different environments (
x86
vsx64
,LegacyJit
vsRyuJit
, and so on; see: Jobs) - Reports: markdown, csv, html, plain text, png plots.
- Advanced features: Baseline, Params
- Powerful diagnostics based on ETW events (see BenchmarkDotNet.Diagnostics.Windows)
Project Details
- Website
- Source
- License: MIT
- NuGet
- Project Lead: Andrey Akinshin
Quicklinks
以上《英文介绍》摘录自 .NET Foundation 的项目介绍 。原文受原项目许可证保护。
其他项目地址
- Akka.NET - 【Actor开发框架】
- AngleSharp - 【浏览器引擎】
- ASP.NET SignalR - 【Web实时通信框架】
- ASP.NET MVC, Web API and Web Pages Razor - 【Web开发框架】
- ASP.NET Ajax Control Toolkit - 【Ajax开发工具】
- ASP.NET Core - 【新时代Web开发框架】
- AutoMapper - 【对象映射管理】
- Microsoft Azure SDK for .NET - 【SDK】
- Microsoft Azure WebJobs SDK - 【SDK】
- BenchmarkDotNet - 【基准测试框架】
- Cake - 【本地自动化框架】
- Chemistry Add-in for Word - 【Word插件】
- Couchbase Lite for .NET - 【NoSQL引擎】
- DNN Platform - 【CMS系统】
- .NET Compiler Platform Roslyn - 【编译器】
- .NET Micro Framework - 【嵌入式框架】
- .NET SDK For Hadoop - 【SDK】
- DotVVM: Component-based MVVM framework for ASP.NET - 【Web服务端MVVM框架】
- Entity Framework - 【ORM】
- Humanizer - 【工具库】
- IdentityManager - 【身份认证数据管理工具】
- IdentityModel - 【身份认证对接库】
- IdentityServer - 【OAuth服务端】
- SixLabors.ImageSharp - 【2D绘图库】
- DLR/IronPython2/IronPython3 - 【.Net上运行Python】
- Json.NET - 【JSON处理库】
- Kudu - 【自动化框架】
- LLILC - 【语言底层项目】
- MailKit - 【邮件处理工具库】
- Managed Extensibility Framework MEF, MEF2 - 【模块化工具库】
- Microsoft Web Protection Library - 【Web防攻击工具库】
- MimeKit - 【MIME处理工具库】
- ML.NET - 【机器学习框架】
- Cecil - 【语言底层项目】
- Mono - 【语言跨平台底层项目】
- MSBuild - 【本地自动化框架】
- MVVM Light Toolkit - 【客户端MVVM开发框架】
- MvvmCross - 【客户端MVVM开发框架】
- Nancy - 【Web开发框架】
- .NET Core - 【Web开发框架】
- Newtonsoft.Json - 【JSON处理库】
- NuGet - 【包管理框架】
- NUnit Test Framework - 【单元测试框架】
- Open Live Writer - 【博客协作工具】
- Open XML SDK - 【Office SDK】
- Orchard CMS - 【CMS系统】
- Orleans - 【Actor开发框架】
- OWIN Authentication Middleware Katana Project - 【Web开发框架】
- Peachpie Compiler Platform - 【.Net上运行PHP】
- Polly - 【服务调用工具库】
- Prism - 【客户端MVVM开发框架】
- Protobuild - 【项目文件生成工具】
- Reactive Extensions for .NET - 【反应式编程框架】
- ReactiveUI - 【反应式编程UI框架】
- Salesforce Toolkits for .NET - 【SDK】
- SourceLink - 【源码调试支持】
- Steeltoe - 【微服务框架】
- System.Drawing Mono - 【2D绘图工具库】
- Telerik UI for UWP - 【UWP UI框架】
- Umbraco - 【CMS框架】
- UWP Community Toolkit - 【UWP 工具库】
- WCF - 【跨进程通信框架】
- Windows Phone Toolkit - 【WP 工具库】
- Windows Template Studio - 【UWP 项目模板】
- Windows Forms - 【客户端开发框架】
- WiX Toolset - 【安装包制作框架】
- WorldWide Telescope - 【宇宙探索工具】
- Windows Presentation Foundation WPF - 【客户端开发框架】
- Xamarin.Auth - 【移动端身份认证工具库】
- Xamarin.Mobile - 【移动端工具库】
- xUnit.net - 【单元测试框架】