web 框架性能排名 techempower 发布 2025 最新结果

177 天前
 bronyakaka

关注的是 Fortunes , 模拟真实 Web 应用中常见的数据库读取和模板渲染场景,测试框架的全栈能力。

完整见: https://www.techempower.com/benchmarks/#hw=ph&test=fortune&section=data-r23

当然框架性能!=实际服务性能,不必较真

8948 次点击
所在节点    程序员
89 条回复
wangtian2020
177 天前
第一个 nodejs 排 105 ,第一个 bun 排 149 。气冷抖,js 什么时候才能站起来
tsanie
177 天前
35 - aspnetcore
42 - aspnetcore-aot
/doge
FightPig
177 天前
我几乎一直用 rails, 每次看排名都几乎垫底
hwdq0012
177 天前
java quarkus 是编译成原生应用(非 Jit ),
just-js 也是无 gc , 非 jit 的
.net core 是 jit 的

.net core 也有 aot 编译成原生,.net 也有 aot 也能编译为原生应用,不过应该还不适用于所有设备

jit 的话,能和.net core 打的应该没几个
niubiman
177 天前
要想程序跑得快, 你不加班才奇怪
boneyao
177 天前
我喜欢 django
avenger
177 天前
laravel 都能排到 152
有点意外啊
NessajCN
177 天前
axum 还挺高
rogwan
177 天前
flask 连前 500 都进不了,还是不配有名字?
0x676e67
177 天前
第一名是跑在手搓的 rust 协程
lfitzgerald
177 天前
@wryyyyyyyyyyyy 但是 python 开发爽啊
sagaxu
177 天前
@hwdq0012
哪看到做 aot 了? Java aot 性能一般是不如 JIT 的。
https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/frameworks/Java/vertx/pom.xml
lesismal
177 天前
虽然能反映出很多框架的性能,但 techempower 也是我见过最逗比的没底线的 benchmark 之一了,plaintext 里包括 gnet 、evio 这种不完整 http 功能的简单拼接字符串方式的测试代码也可以放到排名结果里,甚至这种能拿个 plaintext 第一至今还贴在这种 repo 仓库里作为宣传工具误导不知情的同行。而且这样一来,助长了更多的不良之风:
https://github.com/lesismal/nbio/issues/337#issuecomment-1663771688


go 的 cpu 能力和 java 是差不多的,这种简单测试的结果不意外。

帖子里一些人觉得 gin 简单,是一种错觉、简单与复杂对比错了层面:
1. 在这个简单 http 功能测试对比 gin 和 spring 性能的场景,应该是看 http 基础部分实现的性能复杂度。单就 http 相关的实现,gin 等 go 框架在性能消耗上的浪费可能比 spring 还多,所以 fast 系能赢、gin 和其他几个基于标准库的难赢
2. 各位对比的简单是作为 http 框架甚至框架生态圈的大的功能集合的简单与复杂、但是这部分与这个性能测试是没什么关系的

实际工程中高并发场景,影响性能的重要因素之一是并发度,主要是连接数、协程池|线程池。
java 非 netty 通常的业务线程池 size 设置不会特别大,几百几千,如果遇到并发很大并且一些请求阻塞时间较长时,这些阻塞时间长的请求会持续占用线程,线程池 size 小、等待得多了甚至整个线程池的 worker 都阻塞、临时耗尽了,其他连接的请求要排队,cpu 利用率就跑不上去、业务慢了。
go 这种协程成本低,即使时 4c8g 这种硬件,随便也可以跑几万甚至 10w 级别的协程数量,对应的能服务的连接数就更多,所以部分连接的请求即使阻塞了、处理其他大部分连接的协程就被调度起来继续运行了、cpu 不用等待,因为几万甚至 10w 级别的协程数量远大于 response write 这些 syscall 、远大于下游的 db 操作、或者其他 io 等慢阻塞的并发度,所以整体上不会导致 cpu 利用率降低。

我没有仔细研究这个测试,但没有找到实际测试的连接数并发度,也没有看到各个语言框架对应的 cpu 、内存消耗。
不同的参数会有不同的阈值,如果只是一组参数测试得出结论,不能够准确说明实际业务中不同场景不同时段等的真实性能表现。
wangyzj
177 天前
哈哈哈,rust 性能真好
但我又想起了,ts 编译器换成 go 的事情
james122333
177 天前
gin 使用的是标准库的 net/http
这个本来效能就不好
可以 gin+fasthttp 我在公司是使用这种方式的
效能还不错
当然私人用绝对是手搓一个出来
james122333
177 天前
再说一次 go 的标准库不是效能取向的
guiyumin
177 天前
Laravel 岂不是第 10000 名
guotie
177 天前
pg 才是最大赢家
jmllx1963
177 天前
goframe 不错不错😌
Al0rid4l
177 天前
有些框架(甚至算不上框架)要么是刷分专用, 整得跟裸写 HTTP 服务器似的, 要么生态太小啥都得自己搓, 实际业务中间件加一堆就变得跟某些框架开箱即用差不多, 像 uwebsockets.js 这种一般不会有人直接拿来用, 但是可以用 elysia(bun 底层是 uwebsockets.js), just-js 这种更是基本上跟 js 也没啥关系了

挑些主流框架看看就行, 像 axum, vertx-web 这两个是真的硬, asp minimal apis 也凑合, elysia 写点简单的东西挺不错的(但是据说 js 代码量多了会被 jscore 拖累), quarkus 值得关注

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1118355

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX