TechEmpower 21轮Web框架 性能评测 -- C# 的性能 和 Rust、C++并驾齐驱
<p><span style="font-weight: normal">自从2021年2月第20轮公布的测试以后,一年半后 的</span><span style="font-weight: normal">2022年7月19日 发布了 TechEmpower 21轮测试报告:Round 21 results - TechEmpower Framework Benchmarks。Techempower benchmark是包含范围最广泛的web框架性能测试,覆盖了比较典型的使用场景,其可参考性极强。另外,所有测试源代码和软硬件配置都开放,基本得到大家的认可。</span></p><p><span style="font-weight: normal">TechEmpower基准测试有许多场景(也称为测试类型),此次评测多了一个综合评分选项,把拥有完整测试覆盖的框架现在将具有综合<strong>分数</strong>,这反映了测试项目类型的总体性能得分:JSON serialization, Single-query, Multi-query, Updates, Fortunes 和 Plaintext. 。对于每一轮,我们使每个测试类型的结果规范化,然后为每个测试类型应用主观权重(例如,Fortunes的权重比 Plaintext 高,因为Fortunes 是一种更现实的测试类型)。asp.net core排第7名,主流排名第3名,asp.net 已经在排行榜里面找不到了。</span></p>
<p><img src="https://img2022.cnblogs.com/blog/510/202207/510-20220730223743400-905007163.png" alt="image" width="584" height="432" title="image" border="0" style="display: inline; background-image: none"></p>
<p>asp.net core从去年的综合得分第八名上升一位到了第7名,排名虽然只提升1位,但是相对第一名的性能,从去年的 68%提升到了 83.7%,这个提升不可谓不巨大,要知道排前面都是rust, c++选手,已经比较接近了,都在7000级别,另外,论使用量, asp.net core在前10名的框架中毫无疑问是最多的。 性能已经是asp.net core的优势了,相对java主流框架, go全部框架来看,都是如此,更别说世界上最好的语言PHP了。</p>
<p>表上前缀T标签表示精选的主流编程语言:https://www.techempower.com/benchmarks/#section=data-r21&test=composite</p>
<ul>
<li>第1名 C++的drogon 7801分</li>
<li>第2名 Rust的actix 7667分</li>
<li>第6名 C#的ASP.NET Core 7077分</li>
<li>第63名 Go的gin 1943分</li>
<li>第67名 Java的Spring 1846分</li>
<li>第113名 基于Elixir的 phoenix 687 分</li>
<li>第116名 Nodejs的Express 615分</li>
<li>第130名 PHP的laravel 371分</li>
<li>第131名 Ruby的 rails 366分</li>
<li>第137名 Python的django 274分</li>
</ul>
<p>应用性能直接影响到托管服务的成本,因此公司在开发应用时需要格外注意应用所使用的Web框架,初创公司尤其如此。此外,糟糕的应用性能也会影响到用户体验,甚至会因此受到相关搜索引擎的降级处罚。在选择框架时,又有许多因素需要考量,但原始性能无疑是其中最容易测评的。不同的框架性能差异极大,即使你充分利用了硬件的性能,错误的框架依然可能带来十倍的性能损耗,虽然不是每个人都会遇到如此极端的情况,但在某些情况下确实如此,因此你有必要了解各框架之间的性能差异。</p>
<p>在当今无服务器和容器的时代,很高兴看到行业竞争并在冷启动和内存消耗方面进行艰难的测试,PlaintText单项排名很好的体现了这一项:</p>
<p><img src="https://img2022.cnblogs.com/blog/510/202207/510-20220730223744882-1895236460.png" alt="image" width="565" height="390" title="image" border="0" style="display: inline; background-image: none"></p>
<p>Fortunes测试类型是最有趣的,因为它包括使用对象关系映射器(ORM)和数据库。这是Web应用程序/服务中的常见用例。以前版本的ASP.NET Core在这种情况下表现不佳。由于堆栈和PostgreSQL驱动程序中的优化,ASP.NET Core 2.1得到了显著改进, 3.1 版本又 提升到了27万,5.0版本提升到了40万,6.0版本提升到了45万。 其他方案不太代表典型的应用程序。他们强调堆栈的特定方面。如果它们与您的用例紧密匹配,它们可能会很有趣。对于框架开发人员,他们帮助识别进一步优化堆栈的机会。 例如,考虑Plaintext方案。此方案涉及客户端发送16个请求背靠背(流水线),服务器知道响应,而无需执行I / O操作或计算。这不代表典型的请求,但它是解析HTTP请求的良好压力测试。 每个实现都有一个类。例如,ASP.NET Core Plaintext具有platform, micro和full 实现。full 的实现是使用MVC中间件。Micro实现在管道级实现,platform实现直接建立在Kestrel之上。虽然Platform 类提供了引擎功能强大的概念,但它不是用于应用程序开发人员编程的API。 基准测试结果包括Latency选项卡。一些实现每秒实现非常多的请求,但是以相当大的延迟成本。</p>
<p>相关文章:</p>
<ul>
<li>
<p>TechEmpower 13轮测试中的ASP.NET Core性能测试</p>
</li>
<li>
<p class="postTitle"><span>TechEmpower最新一轮的性能测试出炉,ASP.NET Core依旧表现不俗</span></p>
</li>
<li>
<p>TechEmpower Web 框架性能第19轮测试结果正式发布,ASP.NET Core在主流框架中拔得头筹</p>
</li>
</ul>
</div>
<div id="MySignature" role="contentinfo">
<p>欢迎大家扫描下面二维码成为我的客户,扶你上云</p>
<img src="https://images.cnblogs.com/cnblogs_com/shanyou/57459/o_220125090408_%E9%82%80%E8%AF%B7%E4%BA%8C%E7%BB%B4%E7%A0%81-258px.jpeg" width="170"><br><br>
来源:https://www.cnblogs.com/shanyou/p/16536009.html
頁:
[1]