spring reactive web 与 quarkus resteasy reactive 的简单对比

2022-07-12 13:51:11 +08:00
 yazinnnn

在阿 B 上看到某个大 V 做的对比 spring 和 quarkus 的视频

Java 抗 Go 急先锋!? Quarkus 很优秀,但我不会碰它!

由于怀疑他引用文章的测试方式, 这两天简单的测试了一下两者性能差别.

技术栈分别是

响应内容

HTTP/1.1 200 OK
Content-Length: 5
Content-Type: text/plain;charset=UTF-8

Hello

测试代码

classic 直接返回 Hello
reactive 返回 Uni.createFrom().item("Hello") 和 Mono.just("Hello")

测试环境

cpu i5 10400

内存 ddr4 2666mhz 16G*2

测试命令

wrk -t 10 -c50 -d60s http://localhost:8080/hello

结果

JVM 测试

测试内容 spring-classic spring-reactive quarkus-classic quarkus-reactive
文件大小 22M 26M 19M 19M
构建时间 14s 9s 9s 4s
启动时间 2.175s 2.11s 0.648s 0.583s
requests per second 125271.73 148780.37 185037.19 356713.09
requests per second (-Xmx32m) OOM 58833.49 165686.72 221624.35
requests per second (-Xmx128m) 108679.42 149184.19 199035.62 364742.43
内存占用 876m 800m 472m 461m
内存占用 (-Xmx32m) OOM 218m 196m 174m
内存占用 (-Xmx128m) 291m 345m 255m 203m

native 测试

测试内容 spring-classic spring-reactive quarkus-classic quarkus-reactive
文件大小 75M 74M 41M 49M
构建时间 1m 31s 1m 37s 48s 53s
启动时间 0.013s 0.029s 0.010s 0.011s
requests per second 73348.17 73843.59 103080.93 173766.21
requests per second (-Xmx32m) 331.39 1974.81 1040.43 78649.30
requests per second (-Xmx128m) 38277.29 62579.76 7283.71 174645.15
内存占用 326m 147m 411m 330m
内存占用 (-Xmx32m) 110m 84m 43m 39m
内存占用 (-Xmx128m) 108m 102m 54m 58m

docker 镜像 (1 cpu)

测试内容 spring-reactive quarkus-reactive
镜像大小 106MB 80.5MB
内存占用 (-m 32m) 报错退出 7.758MiB / 32MiB
requests per second (-m 32m) 报错退出 28273.76
内存占用 (-m 64m) 报错退出 12.85MiB / 64MiB
requests per second (-m 64m) 报错退出 29490.30
内存占用 (-m 128m) 41.89MiB / 128MiB 19.11MiB / 128MiB
requests per second (-m 128m) 2292.46 29396.50
内存占用 (-m 256m) 48.02MiB / 256MiB 32.28MiB / 256MiB
requests per second (-m 256m) 2250.47 29820.38

小结

1962 次点击
所在节点    Java
5 条回复
nian8
2022-07-12 14:44:00 +08:00
打成 native 都太慢
nothingistrue
2022-07-12 14:52:05 +08:00
docker 镜像下损耗真大,连原来的 1/10 都不到。
qinxi
2022-07-12 15:04:29 +08:00
@nothingistrue #2 docker 只给了 1cpu
Asimov01
2023-03-08 18:15:29 +08:00
非常好且详细的性能测试,感谢分享!
kwh
2023-04-15 11:38:54 +08:00
那是不是说在 native 方面 Java 无法超过 go 了?毕竟 native 后性能下降这么严重。

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

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

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

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

© 2021 V2EX