Iris GolangKestrel .NET Core (C#)之间的公平基准。

你好!

本文是“使用HTTP性能进行Go vs .Net Core”系列的第二篇,如果您还没有阅读 ,则应该 阅读第一篇 。

准备自己最喜欢的一杯咖啡或茶!
关于反馈

在本节中,我将尝试为您提供上一篇文章反应的一部分(不好的一面)的一般概念,但是您可能根本不在乎或者您没有心情,因此您可能 想要可以 跳过 ,直接进入了“ 标杆 ”一节。

在上一篇文章中,我们比较了Iris Web框架和Iris Web框架的MVC功能的性能。 NET Core通过测试一个简单的应用程序(避免使用诸如“您可以使用更快的json编码器”之类的参数)之类的东西。

这篇文章得到了相当惊人的反应。 大多数评论都非常好,有礼貌地同意或不同意。 有些人的评论有些消极,但也有人期望和欢迎。

我总是尽力负责,因此我会回答您大多数与本文有关的问题,以避免重复。 如果在您的评论下方没有看到我的回复,然后搜索相关问题,我相信您会在那等我。

一些.NET开发人员通过Twitter与我联系,告诉我这不是真正的.NET Core,因为我使用MVC而不是Kestrel,这是否意味着C#开发人员应避免.NET Core的MVC功能? 我听不懂 从基准标题和代码本身可以清楚地看出,我们正在对Iris和.NET Core的MVC版本进行比较,Iris也具有“较低级别”,但我们没有使用它。

注意:IrisMVC是外部Twitter帐户,而不是Iris Web框架的帐户。

我知道我的文章将对.NET世界产生影响。 我最近收到很多粗鲁的评论,有趣的是,那些发表最不可接受的评论的人正在为大公司工作,我的意思是,他们处于某个可以理解人类接触的特定年龄,但实际上他们从未学过人类交流的基础,礼貌。

我真的不认为这是对的,我的意思是发表他们的(已经公开的)评论是正确的决定,但是我们都应该尽快谴责它们。

他坚持甚至不读这篇文章。
那家伙真的以为我从某人那里得到了报酬吗? 可悲的是,我的个人银行账户上只有0.67美元!
斯科特对那个家伙的答复。 除了每个Scott的演讲都超出最佳水平这一事实之外,这也是一个有风范的好人。

另一方面,我真的没有任何问题, 仇恨言论过去而且永远不会触动我,因为我内心没有那个东西-设计使:p   。 我不会接受这些攻击,因为人身攻击也不会吓到我,但这并不意味着我应该默许他们

例如,那个家伙 声称他在微软工作,但我不相信拥有“高学历”的人可以写这样的东西:

即使代码在生产模式下运行,他也不在乎,他只是想发表评论。 还有一个人实际上并没有阅读本文,也没有阅读其中的代码。
可以这么说,他显然是在无缘无故地煽动仇恨。

不,他们并没有止步于此 ,您会对该评论所宣传的民主意识感到惊讶!

例如,那个人报告了dev.to分享我的文章。 对作者不利的dev.to,不要再分享我的文章,他不允许这些事情! “调查之后”,天哪……

乙 eside的小姐参数和诽谤的意见,第一个人,事实上阿里Malekpour张贴了他的说法很好,所以我认为它严重的是,他居然给了我这个想法:写基准为“低级别”的网络侧 Go和.NET Core这两个世界中的一个,所以我们在这里 :)

标杆管理

这次,我们将比较名为Kestrel的“低级” .NET Core服务器实现和Iris的“低级”处理程序的速度,我们将测试两个简单的应用程序, 一个与我们先前的应用程序几乎相同,但是使用处理程序编写的代码, 第二个测试将包含一个路由,该路由根据键(字符串)设置和获取会话值(字符串),并将该会话值返回给客户端。

硬件
  • 处理器:Intel(R)Core(TM)i7–4710HQ CPU @ 2.50GHz 2.50GHz
  • 内存:8.00 GB
软件
首次申请
1251000000 requests“value”

.NET Core(Kestrel)

源代码

启动.NET Core Kestrel Web服务器

定位并运行HTTP基准测试工具

虹膜

源代码

启动Iris Go Web服务器

定位并运行HTTP基准测试工具

摘要
1000000 requests

.NET核心使用线63码10秒服务每秒97884.57请求与写入17.73MB(隼)应用程序/ S1.28ms中平均延迟和61.04ms最大

虹膜应用程序写入使用线14码8秒服务每秒117917.79请求与21.93MB / S1.06ms中平均延迟和19.03ms最大

第二次申请(会议)
5000000 requests125 different “threads”“key””value"”value"

带有会话的.NET Core(Kestrel)

源代码

启动.NET Core Kestrel Web服务器

定位并运行HTTP基准测试工具

带有会话的虹膜

源代码

启动Iris Go Web服务器

定位并运行HTTP基准测试工具

摘要
5000000 requests

.NET核心与会话应用程序运行2分钟40秒 ,供应每秒31844.77请求与14.51MB / 4.02msš潜伏期平均和0.96s最大值。

Iris with Sessions应用程序运行了1分钟15秒每秒处理66749.70个请求,其平均延迟为1.88ms,最大延迟为1.94s ,平均速度为20.65MB / s

结语

我们确实必须承认,与MVC相比,Kestrel的运行速度非常快, 祝贺 开源项目的贡献者 以及 Microsoft 对此的支持。

与上一篇文章一样,该文章也有从我的计算机上截取的屏幕快照 ,并且您在此处看到的相同代码段也存在于gist和github存储库中 ,单击以导航到链接。

我希望看到更多的测试人员,所以请下载源代码并从您的计算机上运行基准测试, 并与我们其他人分享结果。

如果您想联系我进行讨论,我随时乐于接受新的机会和新的朋友,在我的Twitter个人资料中,您将找到我的所有联系信息!

感谢您给予阅读本文的个人时间,就像您上一篇文章一样,将其传播到外界。

在我的下一篇文章中将会看到您,并且……一如既往,玩得开心!

我不止一次单击拍手按钮时,我喜欢视觉效果,是吗? 很简单:只需单击拍手按钮。 如果感觉强烈,请单击更多(或按住不放 )。