支持JDK19虚拟线程的web框架,之一:体验( 四 )

  • 验证服务是否成功,访问:http://192.168.0.1:8080/springboot/persons/1,如下图,功能正常

支持JDK19虚拟线程的web框架,之一:体验

文章插图
压测SpringBoot应用
  • 压测SpringBoot应用的k6脚本如下
import http from 'k6/http';import { sleep, check } from 'k6';export let options = {vus: 30,duration: '60s',};export default function () {let r = Math.floor(Math.random() * 6) + 1;const res = http.get(`http://192.168.0.1:8080/springboot/persons/${r}`);check(res, {'is status 200': (res) => res.status === 200,'body size is > 0': (r) => r.body.length > 0,});sleep(1);}
  • 30并发压测结果如下,这么整齐,和quarkus的基本一致

支持JDK19虚拟线程的web框架,之一:体验

文章插图
  • 300并发压测结果如下 , 几个关键指标依旧和quarkus保持对齐,这让我觉得很索然无味

支持JDK19虚拟线程的web框架,之一:体验

文章插图
  • 5000并发,终于有了点差距,但也不明显 , 成功率91%,低于quarkus的95%,相比quarkus,SpringBoot的平均等待时间略高,QPS略低

支持JDK19虚拟线程的web框架,之一:体验

文章插图
  • 至此,咱们通过实际对比的方式,已体验过quarkus使用虚拟线程的web服务,同在quarkus框架中,虚拟线程带来的提升并不明显,在对比未做优化的SpringBoot应用时 , 也没有在吞吐量方面带来提升,但这一切都不能立即下定论,也许是欣宸的用法有严重问题...如果真有问题,聪明的您,在下一篇文章《编码实战》中一定会发现 , 如果真有问题,不要可怜我 , 怼我,让我忏悔...
  • 接下来的文章,咱们一起深入编程实战,使用JDK19后,对JDK、maven、IDE、编译构建、制作docker镜像等方方面面相比以前都有变化,这些都会在文中逐一处理,咱们一起开发出使用虚拟线程的quarkus应
欢迎关注博客园:程序员欣宸
学习路上,你不孤单 , 欣宸原创一路相伴...

推荐阅读