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 缺少一些分数没有纳入。
Techempower benchmark 是包含范围最广泛的 web 框架性能测试,覆盖了比较典型的使用场景,其可参考性极强。另外,所有测试源代码和软硬件配置都开放,基本得到大家的认可。TFB 挑战是对许多 Web 应用程序平台进行性能比较,这些平台通过 HTTP 执行 JSON、数据库、ORM、HTML 模板。它比较了用 C++、Rust、Go、JS、Java、C# 编写的最佳框架。
应用性能直接影响到托管服务的成本,因此公司在开发应用时需要格外注意应用所使用的 Web 框架,初创公司尤其如此。此外,糟糕的应用性能也会影响到用户体验,甚至会因此受到相关搜索引擎的降级处罚。在选择框架时,又有许多因素需要考量,但原始性能无疑是其中最容易测评的。不同的框架性能差异极大,即使你充分利用了硬件的性能,错误的框架依然可能带来十倍的性能损耗,虽然不是每个人都会遇到如此极端的情况,但在某些情况下确实如此,因此你有必要了解各框架之间的性能差异。
在当今无服务器和容器的时代,很高兴看到行业竞争并在冷启动和内存消耗方面进行艰难的测试,PlaintText 单项排名很好的体现了这一项:
Fortunes 测试类型是最有趣的,因为它包括使用对象关系映射器(ORM)和数据库。这是 Web 应用程序/服务中的常见用例。
在精选主流编程语言中排名第二、三。今年新加了 NativeAOT 的选项,排在第 20 位,另请注意,这些测试使用 PostgreSQL。
其他方案不太代表典型的应用程序。他们强调堆栈的特定方面。如果它们与您的用例紧密匹配,它们可能会很有趣。对于框架开发人员,他们帮助识别进一步优化堆栈的机会。 例如,考虑 Plaintext 方案。此方案涉及客户端发送 16 个请求背靠背(流水线),服务器知道响应,而无需执行 I / O 操作或计算。这不代表典型的请求,但它是解析 HTTP 请求的良好压力测试。
服务器性能是关于正确的多线程编码,最大限度地减少系统调用和锁争用的数量,并尽可能多地重用上下文。最重要的当然是实际测量(而不是猜测),从报告来看.NET 8 这个以今为止最快的.NET 框架非常值得升级:后天就发布 RTM 版本了,欢迎大家参加.NET Conf 2023: .NET Conf 2023 将在 11 月 15日-17 日 举行 ,附中文日程表。
文章转载自:张善友
评论