2026/4/23 8:22:12
网站建设
项目流程
山东省建设机械协会网站,邢台人才网最新招聘信息网,建设工程的招标网站有哪些,网站建设与维护要求前言
不知不觉居然12月了#xff0c;最近琐事太多#xff0c;产出并不高#xff0c;继续整理一下近期的一些笔记吧。
上次我对部署 Django 框架时用的不同服务器进行对比测试#xff0c;详见#xff1a;不同Django服务器和部署方式的性能调研
在探索的过程中#xff0c;我…前言不知不觉居然12月了最近琐事太多产出并不高继续整理一下近期的一些笔记吧。上次我对部署 Django 框架时用的不同服务器进行对比测试详见不同Django服务器和部署方式的性能调研在探索的过程中我还对不同语言的框架进行了测试对比。Django测试补充对于上次的 Django 性能测试还有一些补充的结论drf 和 ninja 性能差别不大在 2C2G 服务器上workers4 比 workers2 的性能好具体好多少我只测试了 uwsgi 服务器大概是 33% 的差距本次测试本次测试的语言和框架aspnetcore 8.0 (starblog 项目)aspnetcore webapi(controller) 9.0 (ayaka-chats 项目)go gin (ebook-forge 项目)Next.js (iothub dashboard 项目)为了确保变量控制我把这些项目都部署了一份在腾讯云 2C2G 的小水管服务器上统一进行测试。测试命令统一使用/* by 01022.hk - online tools website : 01022.hk/zh/worldtime.html */ wrk -t4 -c200 -d30s url测试目标都是各项目中的轻量 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 MVCStarBlog“老项目拖后腿性能扣分主要在架构而不是 .NET 本身。”内存直接飙到 560MB说明各种 IOC MVC 中间件拉满项目结构本身臃肿吞吐不到 6k RPSAspNetCore 9.0 WebAPIAyaka Chats“这是微软真正的力量展示。”内存仅 80M非常干净利落。15k RPS 是这里的冠军。CPU能吃满说明框架没有瓶颈能把机器压榨完。✔ 适合高性能微服务、AI 中转服务✔ 适合做 AI SaaS、个人工具 API 的场景⚠ 写的人要懂 C#Go GinEbook Forge“极致轻量但吞吐这次反而没那么亮眼。”内存只有 35M轻得离谱。吞吐 6k RPS比我预期的稍低但也稳定。CPU占用只有 70%表明 Go 调度器稳但 Gin 本身未完全吃满 CPU。✔ 特别适合后台队列、消息处理、轻量服务✔ 适合部署成本敏感场景小内存机器✘ 对偏全栈 AI 的开发者来说生态相对弱一些Next.jsiothub 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/StringResult Running 30s test http://127.0.0.1:9874/Api/DataWrapperTest/StringResult 4 threads and 200 connections Thread 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 read Requests/sec: 5960.51 Transfer/sec: 1.47MBaspnetcore webapi(controller) 9.0 (ayaka-chats 项目)测试时内存峰值占用80M左右CPU占用95%$ wrk -t4 -c200 -d30s http://127.0.0.1:16080/api/auth/csrf Running 30s test http://127.0.0.1:16080/api/auth/csrf 4 threads and 200 connections Thread 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 read Requests/sec: 15031.56 Transfer/sec: 3.31MBgo gin (ebook-forge 项目)测试时内存峰值占用35M左右CPU占用70%$ wrk -t4 -c200 -d30s http://127.0.0.1:8080/health Running 30s test http://127.0.0.1:8080/health 4 threads and 200 connections Thread 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 read Requests/sec: 6145.14 Transfer/sec: 3.83MBNext.js (iothub dashboard 项目)测试时内存峰值占用135M左右CPU占用50%$ wrk -t4 -c200 -d30s http://127.0.0.1:3000/api/health Running 30s test http://127.0.0.1:3000/api/health 4 threads and 200 connections Thread Stats Avg Stdev Max /- Stdev Latency 251.98ms 110.23ms 1.95s 68.01% Req/Sec 112.01 89.28 515.00 61.88% 12192 requests in 30.03s, 4.45MB read Socket errors: connect 0, read 0, write 0, timeout 118 Requests/sec: 405.96 Transfer/sec: 151.80KB小结对于个人开发者和轻量 SaaS 而言想要“爽”和“稳”首选 AspNetCore 9想要“省”和“快上手”Go Gin 很好Django / Python 生态强但性能不是主要卖点需要依赖 ASGI 服务器选择Node.js 适合做 BFF不适合承担高吞吐 API。微信公众号「程序设计实验室」 专注于互联网热门新技术探索与团队敏捷开发实践包括架构设计、机器学习与数据分析算法、移动端开发、Linux、Web前后端开发等欢迎一起探讨技术分享学习实践经验。