首页 > 其他分享 >基准测试BenchmarkDotNet

基准测试BenchmarkDotNet

时间:2023-06-30 18:45:22浏览次数:42  
标签:int 基准 BenchmarkDotNet 枚举 测试 GetHashCode public Red

今天飞书群里同事争论 枚举.GetHashCode()会装箱,要改为(int)枚举,争吵不下

image

纸上谈兵无法说服另外的人,上BenchmarkDotNet基准测试

添加BenchmarkDotNet库

<PackageReference Include="BenchmarkDotNet" Version="0.13.5" />

性能测试用例

class Program
{
	static void Main(string[] args)
	{
		var summary = BenchmarkRunner.Run<EnumParseBenchmark>();
		Console.ReadLine();
	}
}

/// <summary>
/// (int)枚举 与 枚举.GetHashCode() 性能对比
/// </summary>
public class EnumParseBenchmark
{
	enum color
	{
		none = 1,
		Red = 2,
		yellow = 3,
		green = 4,
		black = 5,
	}

	[Benchmark]
	public int enumGetHashCode() => color.Red.GetHashCode();
	[Benchmark]
	public int enumIntParse() => (int)color.Red;
}

需要Release运行

image

最终结果,性能差别不大。

image

新版本对已经对枚举.GetHashCode()做了优化

https://github.com/dotnet/runtime/issues/6979
image

标签:int,基准,BenchmarkDotNet,枚举,测试,GetHashCode,public,Red
From: https://www.cnblogs.com/lgxlsm/p/17517587.html

相关文章

  • 自媒体文章审核单元测试
    packagecom.heima.wemedia.test.service;importcom.heima.wemedia.WemediaApplication;importcom.heima.wemedia.service.WmNewsAutoScanService;importorg.junit.Test;importorg.junit.runner.RunWith;importorg.springframework.beans.factory.annotation.Autow......
  • web自动化测试入门篇05——元素定位的配置管理
      ......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-5-元素定位大法-上篇
    1.简介说到元素定位,小伙伴或者童鞋们肯定会首先想到selenium的八大元素定位大法。同理Playwright也有自己的元素定位的方法。今天就给小伙伴或者童鞋们讲解和分享一下Playwright的元素定位方法。宏哥对UI自动化的理解:定位元素--->操作元素---->断言。2.定位器定位器(Locator)......
  • python3的django创建api通过Postman进行端口测试
    1、打开pycharm创建工程及app  创建url  创建views函数:  fromdjango.shortcutsimportrender#Createyourviewshere.fromdjango.viewsimportViewfromdjango.utils.decoratorsimportmethod_decoratorfromdjango.views.decorators.csrfimportcsrf_exemptfr......
  • 软件测试|web自动化测试神器playwright教程(十七)
    前言上篇文章我们介绍了使用playwright下载文件的方法,本篇文章我们将介绍使用playwright上传文件。上传文件是我们经常需要面对的场景,如果我们使用的是selenium,那我们的操作会比较复杂,因为有的文件上传是input控件,有些是需要我们直接传文件地址,一旦弹出文件选择框的话,selenium就无......
  • 软件测试|web自动化测试神器playwright教程(二十)
    前言我们都知道,selenium可以实现Chrome浏览器的复用,绕过登录步骤,实现cookie的复用,playwright同样也可以实现该功能。环境设置我们在使用selenium进行浏览器复用时,需要提前将Chrome浏览器配置到我们的环境变量中,具体步骤如下:找到Chrome浏览器的安装路径,如下图:将'C:\ProgramFiles(x......
  • 软件测试|web自动化测试神器playwright教程(二十一)
    前言我们在日常工作和生活中,经常会遇到滑块的情况,如下图所示:淘宝的网页登录,在我们输入完账号密码后,需要按住滑块,并且滑动至最右边,才可以登录。这是最为常见的滑块安全验证机制,当然也对我们的自动化工作造成了部分的困扰,在selenium中,我们可以通过滑动滑块来解决这个问题,而playwright......
  • 软件测试|web自动化测试神器playwright教程(二十二)
    前言工作和生活中,经常会遇到我们需要进行选择的情况,比如勾选,或者我们选择性别,男女两个性别总是不能同时选中的,比如我们在选择兴趣爱好时,我们可以选择多个自己感兴趣的话题,比如篮球足球电竞等话题。我们在执行自动化测试的过程中,必须要学会处理这样的情况。页面示例以下面的界面为例......
  • 软件测试|web自动化测试神器playwright教程(二十三)
    前言我们在进行web自动化时,经常遇到一些不好操作的元素,普通的元素定位和操作容易报错,如果我们使用的selenium的话,就可以使用selenium调用js脚本进行操作。在playwright中也有类似的方法,使用page.evaluate()执行JavaScript脚本。page.evaluate()和page.evaluate_handle()之间的唯......
  • 全栈测试开发系列----WebDriver API及对象识别技术(二)---selenium验证码处理的多种实现
    前言对于测试人员而言,不管是进行性能测试还是自动化测试,验证码的处理都是棘手的存在,在WEB应用中,大部分系统在用户登录的时候都要求用户输入验证码,且验证码的种类繁多,如纯数字、纯字母、汉子组合、数学题运算、滑动图标、图片、短信、邮箱、语音等。既然要实现验证码的处......