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

2025 年 3 月 14 日
 bronyakaka

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

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

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

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

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

jit 的话,能和.net core 打的应该没几个
niubiman
2025 年 3 月 14 日
要想程序跑得快, 你不加班才奇怪
boneyao
2025 年 3 月 14 日
我喜欢 django
avenger
2025 年 3 月 14 日
laravel 都能排到 152
有点意外啊
NessajCN
2025 年 3 月 14 日
axum 还挺高
rogwan
2025 年 3 月 14 日
flask 连前 500 都进不了,还是不配有名字?
0x676e67
2025 年 3 月 14 日
第一名是跑在手搓的 rust 协程
lfitzgerald
2025 年 3 月 14 日
@wryyyyyyyyyyyy 但是 python 开发爽啊
sagaxu
2025 年 3 月 14 日
@hwdq0012
哪看到做 aot 了? Java aot 性能一般是不如 JIT 的。
https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/frameworks/Java/vertx/pom.xml
lesismal
2025 年 3 月 14 日
虽然能反映出很多框架的性能,但 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
2025 年 3 月 14 日
哈哈哈,rust 性能真好
但我又想起了,ts 编译器换成 go 的事情
james122333
2025 年 3 月 14 日
gin 使用的是标准库的 net/http
这个本来效能就不好
可以 gin+fasthttp 我在公司是使用这种方式的
效能还不错
当然私人用绝对是手搓一个出来
james122333
2025 年 3 月 14 日
再说一次 go 的标准库不是效能取向的
guiyumin
2025 年 3 月 14 日
Laravel 岂不是第 10000 名
guotie
2025 年 3 月 14 日
pg 才是最大赢家
jmllx1963
2025 年 3 月 14 日
goframe 不错不错😌
Al0rid4l
2025 年 3 月 14 日
有些框架(甚至算不上框架)要么是刷分专用, 整得跟裸写 HTTP 服务器似的, 要么生态太小啥都得自己搓, 实际业务中间件加一堆就变得跟某些框架开箱即用差不多, 像 uwebsockets.js 这种一般不会有人直接拿来用, 但是可以用 elysia(bun 底层是 uwebsockets.js), just-js 这种更是基本上跟 js 也没啥关系了

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

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

https://study.congcong.us/t/1118355

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

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

© 2021 V2EX