【全栈起步】主流web框架性能对比

289 阅读1分钟

最近在项目中遇到了严重的并发问题,其实需求很简单,就是app上传的日志我存到数据库,但是app的日志太多了,服务器的cpu直接干满,对了,当前使用的是spring-boot,是同步非阻塞(nio),就在想换成异步非阻塞会怎么样, 首先收集了几个主流的web框架

  1. java-spring-boot
  2. java-vertx
  3. go-gin
  4. node-fastify
  5. rust-actix

当然rust-actix算不上主流,但是也算以性能著称 测试工具使用ApacheBench

ab -n 1000 -c 1000 http://127.0.0.1:8888/

这里我也发现了一个奇怪的问题,在Windows上我1000并发没有问题,但是在macos上直接报too many open...

声明: 所测试工程皆为简单的hello-world项目 上图:

Dingtalk_20230927091127.jpg

单从数据层面看vertx的单次平均耗时最短, 简单排个序吧, 从低到高

  1. java-vertx
  2. go-gin
  3. java-spring-boot
  4. rust-actix
  5. node-fastify

actix与预期出入较大, 应该是平台差异也会导致, 晚上回去我用 -c 100 在macos上再看下数据