TechEmpower 22轮Web框架 性能评测:.NET 8 战绩斐然

自从2022年7月第21轮公布的测试以后,一年后 的2023年10月17日 发布了 TechEmpower 22轮测试报告 刚刚发布:Round 22 results - TechEmpower Framework Benchmarks。今年参与角逐的.NET 8 ,ASP.NET Core 排名相当不错,因为我们在 302 个框架中被评为 #15,在精选主流编程语言中排名第二,去年排第一的drogon 缺少一些分数没有纳入。

image

Techempower benchmark是包含范围最广泛的web框架性能测试,覆盖了比较典型的使用场景,其可参考性极强。另外,所有测试源代码和软硬件配置都开放,基本得到大家的认可。TFB 挑战是对许多 Web 应用程序平台进行性能比较,这些平台通过 HTTP 执行 JSON、数据库、ORM、HTML 模板。它比较了用 C++、Rust、Go、JS、Java、C# 编写的最佳框架。

应用性能直接影响到托管服务的成本,因此公司在开发应用时需要格外注意应用所使用的Web框架,初创公司尤其如此。此外,糟糕的应用性能也会影响到用户体验,甚至会因此受到相关搜索引擎的降级处罚。在选择框架时,又有许多因素需要考量,但原始性能无疑是其中最容易测评的。不同的框架性能差异极大,即使你充分利用了硬件的性能,错误的框架依然可能带来十倍的性能损耗,虽然不是每个人都会遇到如此极端的情况,但在某些情况下确实如此,因此你有必要了解各框架之间的性能差异。

在当今无服务器和容器的时代,很高兴看到行业竞争并在冷启动和内存消耗方面进行艰难的测试,PlaintText单项排名很好的体现了这一项:

image

Fortunes测试类型是最有趣的,因为它包括使用对象关系映射器(ORM)和数据库。这是Web应用程序/服务中的常见用例。

image

在精选主流编程语言中排名第二、三。今年新加了NativeAOT的选项,排在第20位,另请注意,这些测试使用 PostgreSQL

其他方案不太代表典型的应用程序。他们强调堆栈的特定方面。如果它们与您的用例紧密匹配,它们可能会很有趣。对于框架开发人员,他们帮助识别进一步优化堆栈的机会。 例如,考虑Plaintext方案。此方案涉及客户端发送16个请求背靠背(流水线),服务器知道响应,而无需执行I / O操作或计算。这不代表典型的请求,但它是解析HTTP请求的良好压力测试。

服务器性能是关于正确的多线程编码,最大限度地减少系统调用和锁争用的数量,并尽可能多地重用上下文。最重要的当然是实际测量(而不是猜测),从报告来看.NET 8 这个以今为止最快的.NET框架非常值得升级:后天就发布RTM版本了,欢迎大家参加.NET Conf 2023: .NET Conf 2023 将在 11 月 15日-17 日 举行 ,附中文日程表

image

文章转载自:张善友

原文链接:https://www.cnblogs.com/shanyou/p/17828353.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
什么是Nancy呢?如果你学习过Ruby的话,就会知道Ruby中有个框架叫做Sinatra,Nancy就是Sinatra的.Net版本。如果你感觉微软的MVC过于笨重、过于繁琐,那么Nancy可能就是你苦苦寻找的东西。Nancy是一个轻量级的独立的框架,下面是官网的一些介绍:Nancy 是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台,框架的目标是保持尽可能多的方式,并提供一个super-duper-happy-path所有交互。Nancy 设计用于处理  DELETE ,  GET ,  HEAD ,  OPTIONS ,  POST ,  PUT   和 PATCH  等请求方法,并提供简单优雅的 DSL 以返回响应。Nancy和Asp.net MVC原理相似,但有自己的一套路由机制,在使用上更加易用,可以用Nancy快速开发一些网站。Nancy并不依赖任何现有的框架,所以他可以运行在任何平台上面。官方网站 http://nancyfx.org/ 更详细的介绍参见 http://blog.spinthemoose.com/2011/07/18/nancy-a-micro-web-framework-for-net/ 顺便介绍个使用Nancy 做的Quartz.netweb控制台 https://quartznetwebconsole.codeplex.com/ 参考文章:使用Nancy和Simple.Data两个轻量级的框架打造一个分布式开发系统(一)Frictionless .NET Web App Development with NancyFrictionless .NET Web App Development with Nancy Part II - Introducing a View EngineFrictionless .NET Web App Development with Nancy Part III - Introducing MongoDBFrictionless .NET Web App Development with Nancy Part IV – Hosting Slides from ANUG talk on Nancy扩展NoteService,支持NancyFx用Nancy和Simple.Data创建一个图片博客 第一部分:开始一个工程用Nancy和Simple.Data创建一个图片博客 第二部分:定义routes用Nancy和Simple.Data创建一个图片博客 第三部分:渲染一些ViewsIntegrating Nancy with protobuf-netBuild Simple Web UIs with the Nancy Framework轻量级MVC框架:Nancy学习 标签:web框架
这里提供一个简单的网站框架,仅供参考。 首先,需要确定使用哪种编程语言和框架。这里以Python Flask框架为例。 1. 安装Flask框架: ``` pip install flask ``` 2. 创建一个Flask应用: ```python from flask import Flask app = Flask(__name__) ``` 3. 创建一个HTML表单页面,用于用户上传信息: ```html <!DOCTYPE html> <html> <head> <title>上传玩家信息</title> </head> <body> <h1>上传玩家信息</h1> <form action="/add_player" method="POST"> <label for="name">名称:</label> <input type="text" id="name" name="name"><br><br> <label for="region">大区:</label> <input type="text" id="region" name="region"><br><br> <label for="score">战绩:</label> <input type="text" id="score" name="score"><br><br> <label for="reason">原因:</label> <input type="text" id="reason" name="reason"><br><br> <input type="submit" value="提交"> </form> </body> </html> ``` 4. 创建一个路由,用于处理表单提交的数据,并将数据保存到一个列表中: ```python players = [] @app.route('/add_player', methods=['POST']) def add_player(): name = request.form['name'] region = request.form['region'] score = request.form['score'] reason = request.form['reason'] player = {'name': name, 'region': region, 'score': score, 'reason': reason} players.append(player) return redirect('/') ``` 5. 创建一个路由,用于展示所有上传的玩家信息: ```python @app.route('/') def show_players(): html = '<h1>所有玩家信息</h1>' for player in players: html += '<p>名称:{}</p>'.format(player['name']) html += '<p>大区:{}</p>'.format(player['region']) html += '<p>战绩:{}</p>'.format(player['score']) html += '<p>原因:{}</p>'.format(player['reason']) html += '<hr>' return html ``` 6. 运行Flask应用: ```python if __name__ == '__main__': app.run(debug=True) ``` 7. 在浏览器中访问http://localhost:5000,即可上传和展示玩家信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值