窖咎 发表于 2026-1-18 15:35:03

Python、CSharp、Go、Nextjs,不同框架的性能到底差多少?

前言

不知不觉居然12月了,最近琐事太多,产出并不高,继续整理一下近期的一些笔记吧。
上次我对部署 Django 框架时用的不同服务器进行对比测试,详见:不同Django服务器和部署方式的性能调研
在探索的过程中,我还对不同语言的框架进行了测试对比。
Django测试补充

对于上次的 Django 性能测试,还有一些补充的结论:

[*]drf 和 ninja 性能差别不大
[*]在 2C2G 服务器上,workers=4 比 workers=2 的性能好,具体好多少,我只测试了 uwsgi 服务器,大概是 33% 的差距
本次测试

本次测试的语言和框架:

[*]aspnetcore 8.0 (starblog 项目)
[*]aspnetcore webapi(controller) 9.0 (ayaka-chats 项目)
[*]go + gin (ebook-forge 项目)
[*]Next.js (iothub dashboard 项目)
为了确保变量控制,我把这些项目都部署了一份在腾讯云 2C2G 的小水管服务器上,统一进行测试。
测试命令统一使用:
wrk -t4 -c200 -d30s 测试目标都是各项目中的轻量 API(返回短字符串或简单 JSON),侧重框架本身吞吐与延迟表现,而不是业务代码复杂度。
测试结论

结果挺有意思,也和我长期使用这些框架的感受基本吻合。
总览

对了,之前测的 Django 最好成绩是 1200RPS 左右。回顾:不同Django服务器和部署方式的性能调研
项目 / 技术栈Requests/sec内存占用CPU占用说明AspNetCore 8 (老架构 MVC)5,960560MB100%架构臃肿,内存偏高;吞吐反而一般AspNetCore 9 (WebAPI)15,03180MB95%新生代架构非常轻,性能极强Go + Gin6,14535MB70%内存省、吞吐中规中矩Next.js (Edge API / App Router)405135MB50%Node.js 在高并发 API 上天生不占优势结论

1. 综合性能冠军:AspNetCore 9

吞吐最高、内存中等、生态强,适合未来的大项目(比如编辑器 Clipify、AI 服务、Chat API)。
2. 轻量冠军:Go + Gin

内存最省,部署和扩容成本最低,适合独立组件或内部服务。
3. 传统 Web 项目的现实:AspNetCore MVC 太重

老项目迁移成本高,但新项目真的不推荐继续 MVC 了。
4. Node.js/Next.js 不适合做高并发 API

适合前端页面和简单后端逻辑,但不适合作为性能核心。
逐项分析

AspNetCore 8.0 MVC(StarBlog)

“老项目拖后腿,性能扣分主要在架构而不是 .NET 本身。”
内存直接飙到 560MB,说明:

[*]各种 IOC + MVC + 中间件拉满
[*]项目结构本身臃肿
[*]吞吐不到 6k RPS
AspNetCore 9.0 WebAPI(Ayaka Chats)

“这是微软真正的力量展示。”


[*]内存仅 80M,非常干净利落。
[*]15k RPS 是这里的冠军。
[*]CPU能吃满,说明框架没有瓶颈,能把机器压榨完。
✔ 适合高性能微服务、AI 中转服务
✔ 适合做 AI SaaS、个人工具 API 的场景
⚠ 写的人要懂 C#
Go + Gin(Ebook Forge)

“极致轻量,但吞吐这次反而没那么亮眼。”


[*]内存只有 35M,轻得离谱。
[*]吞吐 6k RPS,比我预期的稍低,但也稳定。
[*]CPU占用只有 70%,表明 Go 调度器稳,但 Gin 本身未完全吃满 CPU。
✔ 特别适合后台队列、消息处理、轻量服务
✔ 适合部署成本敏感场景(小内存机器)
✘ 对偏全栈 + AI 的开发者来说,生态相对弱一些
Next.js(iothub dashboard)

“Node 跑 API:能跑,但别期待高并发。”


[*]400 RPS → 不算 API 性能框架(期望是 Express/fastify 的千级)
[*]延迟 200ms+ → 再次印证了 Node.js 单线程 + V8 的特性
[*]适合 SSR/前端 BFF,不适合做主要 API
✔ 如果是页面渲染、前端服务,中规中矩
✘ 如果是 API 主战场,还是别为难它
测试数据

aspnetcore 8.0 (starblog 项目)

测试时内存峰值占用560M左右,CPU占用100%;
这个项目因为是 AspNetCore MVC 加上架构比较老,太臃肿,导致内存占用很多,而且性能也比较差。
$ wrk -t4 -c200 -d30s http://127.0.0.1:9874/Api/DataWrapperTest/StringResultRunning 30s test @ http://127.0.0.1:9874/Api/DataWrapperTest/StringResult4 threads and 200 connectionsThread Stats   Avg      Stdev   Max   +/- Stdev    Latency    44.04ms   44.20ms 304.43ms   88.08%    Req/Sec   1.59k   559.31   2.42k    75.64%179013 requests in 30.03s, 44.22MB readRequests/sec:   5960.51Transfer/sec:      1.47MBaspnetcore webapi(controller) 9.0 (ayaka-chats 项目)

测试时内存峰值占用80M左右,CPU占用95%
$ wrk -t4 -c200 -d30s http://127.0.0.1:16080/api/auth/csrfRunning 30s test @ http://127.0.0.1:16080/api/auth/csrf4 threads and 200 connectionsThread Stats   Avg      Stdev   Max   +/- Stdev    Latency    13.94ms    8.17ms 111.67ms   83.87%    Req/Sec   3.78k   1.06k    5.68k    72.92%451205 requests in 30.02s, 99.40MB readRequests/sec:15031.56Transfer/sec:      3.31MBgo + gin (ebook-forge 项目)

测试时内存峰值占用35M左右,CPU占用70%
$ wrk -t4 -c200 -d30s http://127.0.0.1:8080/healthRunning 30s test @ http://127.0.0.1:8080/health4 threads and 200 connectionsThread Stats   Avg      Stdev   Max   +/- Stdev    Latency    37.13ms   33.65ms 499.93ms   82.09%    Req/Sec   1.55k   328.35   2.86k    74.04%184447 requests in 30.02s, 114.86MB readRequests/sec:   6145.14Transfer/sec:      3.83MBNext.js (iothub dashboard 项目)

测试时内存峰值占用135M左右,CPU占用50%
$ wrk -t4 -c200 -d30s http://127.0.0.1:3000/api/healthRunning 30s test @ http://127.0.0.1:3000/api/health4 threads and 200 connectionsThread Stats   Avg      Stdev   Max   +/- Stdev    Latency   251.98ms110.23ms   1.95s    68.01%    Req/Sec   112.01   89.28   515.00   61.88%12192 requests in 30.03s, 4.45MB readSocket errors: connect 0, read 0, write 0, timeout 118Requests/sec:    405.96Transfer/sec:    151.80KB小结

对于个人开发者和轻量 SaaS 而言:
想要“爽”和“稳”,首选 AspNetCore 9;
想要“省”和“快上手”,Go + Gin 很好;
Django / Python 生态强但性能不是主要卖点,需要依赖 ASGI 服务器选择;
Node.js 适合做 BFF,不适合承担高吞吐 API。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

连热 发表于 2026-2-4 04:04:43

很好很强大我过来先占个楼 待编辑

百里宵月 发表于 2026-2-9 02:43:40

很好很强大我过来先占个楼 待编辑

杆树 发表于 2026-2-9 08:53:01

前排留名,哈哈哈

拙因 发表于 2026-2-9 17:54:51

新版吗?好像是停更了吧。

材部 发表于 2026-2-9 19:18:59

感谢发布原创作品,程序园因你更精彩

糙昧邵 发表于 2026-2-9 21:34:20

新版吗?好像是停更了吧。

劳暄美 发表于 2026-2-12 03:14:18

谢谢分享,试用一下

堵赫然 发表于 2026-2-12 06:19:02

东西不错很实用谢谢分享

庞悦 发表于 2026-2-12 21:49:29

鼓励转贴优秀软件安全工具和文档!

姬宜欣 发表于 2026-3-4 06:13:18

很好很强大我过来先占个楼 待编辑

焦和玉 发表于 2026-3-7 11:18:52

收藏一下   不知道什么时候能用到

劝匠注 发表于 3 天前

鼓励转贴优秀软件安全工具和文档!

袂沐 发表于 前天 00:49

鼓励转贴优秀软件安全工具和文档!

任佳湍 发表于 昨天 07:19

谢谢楼主提供!

襁壮鸢 发表于 18 小时前

谢谢分享,辛苦了
页: [1]
查看完整版本: Python、CSharp、Go、Nextjs,不同框架的性能到底差多少?