Spring WebFlux对比Spring MVC压测对比

本文对比了SpringWebFlux和SpringMVC在不同并发量下的性能表现。在未优化的情况下,SpringWebFlux在处理请求数、TPS、内存使用和线程资源上均优于SpringMVC。SpringWebFlux的线程数几乎不变,而SpringMVC并发增加时线程数显著上升,表明SpringWebFlux的异步非阻塞模式更具优势。
摘要由CSDN通过智能技术生成

Spring WebFlux对比Spring MVC压测对比

目标

  • 50 100 200 300 并发分别压测基于Spring WebFlux和Spring MVC的程序
  • 总结

准备工作

  • 准备一个基于Spring WebFlux和一个基于Spring MVC的工程
  • apache-jmeter-3.3.2:压测工具
  • jvisualVM:JVM指标监控

开始压测

指标1:50 并发,压测1分钟

  • Spring MVC

    • jmeter压测报告

在这里插入图片描述

    • JVM监控

    在这里插入图片描述

  • Spring WebFlux

    • jmeter压测报告

      在这里插入图片描述

    • JVM监控

      在这里插入图片描述


指标2:100 并发,压测1分钟

  • Spring MVC

    • jmeter压测报告

      在这里插入图片描述

    • JVM监控

    在这里插入图片描述

  • Spring WebFlux

    • jmeter压测报告

      在这里插入图片描述

    • JVM监控

      在这里插入图片描述


指标3:200 并发,压测1分钟

  • Spring MVC

    • jmeter压测报告

      在这里插入图片描述

    • JVM监控

    在这里插入图片描述

  • Spring WebFlux

    • jmeter压测报告

    在这里插入图片描述

    • JVM监控

    在这里插入图片描述


指标4:300 并发,压测1分钟

  • Spring MVC

    • jmeter压测报告

    在这里插入图片描述

    • JVM监控

      在这里插入图片描述

  • Spring WebFlux

    • jmeter压测报告

    在这里插入图片描述

    • JVM监控

    在这里插入图片描述

总结

Spring WebFlux 压测数据统计

指标总请求数TPS最大响应时间最小响应时间平均响应时间最大堆大小CPUMax Thread Number
50并发/分钟194671132445.216901310M左右44%左右20
100并发/分钟189125631519.924703310M左右46%左右19
200并发/分钟192001331995.428506280M左右45%左右20
300并发/分钟187574831255.280309410M左右45%左右19

Spring MVC 压测数据统计

指标总请求数TPS最大响应时间最小响应时间平均响应时间最大堆大小CPUMax Thread Number
50并发/分钟143168523860.663702700M左右42%左右最高120
100并发/分钟141241123537.416404400M左右42%左右最高125
200并发/分钟139916323314.323408400左右45%左右最高216
300并发/分钟133256422206.8235013最高达到了1.5GB以上41%左右最高217

结论

    在未进行任何参数调优的情况下,四次压测结果显示Spring WebFlux性能更优秀,单位时间处理请求数更多,TPS更高(高很多,提高35%以上),并且,在内存使用和线程资源上也更加优秀,Spring WebFlux在四次压测中处理任务的线程数几乎是不变的,只有十几个,而Spring MVC并发越高创建的任务线程也越多,这都得益于Spring WebFlux使用的Netty+Reactor异步非阻塞的模式。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Ktor和Spring WebFlux都是基于响应式编程的Web框架,它们具有许多相似之处,但也有一些区别。 1. 学习曲线 Ktor比Spring WebFlux的学习曲线更平滑,因为它的API更简洁,更容易理解和使用。它的DSL(领域特定语言)方式使得开发人员可以更快地编写代码,而不必了解太多的框架细节。然而,Spring WebFlux的学习曲线可能更陡峭,因为它是一个更大的框架,需要更多的学习和理解。 2. 性能 Ktor比Spring WebFlux在性能方面表现更好,因为它是一个更轻量级的框架。它可以处理更高的并发请求并具有更快的响应时间。然而,Spring WebFlux也具有很好的性能,并且可以轻松扩展到更大的应用程序。 3. 路由 Ktor的路由系统简单,易于使用,并且可以轻松地将路由映射到不同的处理程序。然而,Spring WebFlux的路由系统更加灵活,可以更好地处理复杂的路由映射。它还支持更多的路由选项,如正则表达式和路径变量。 4. 生态系统 Spring WebFlux具有更大的生态系统,因为它是Spring Framework的一部分。它有许多可用的插件和库,可以轻松地与其他Spring项目集成。另一方面,Ktor是一个相对较新的框架,它的生态系统较小,但它也有一些可用的插件和库。 综上所述,Ktor和Spring WebFlux都是优秀的Web框架,具有各自的优点和缺点。选择哪一个取决于您的需求和技术水平。如果您需要一个轻量级的框架,快速开发,并需要更好的性能,则Ktor可能是更好的选择。如果您需要一个更灵活的框架,并且已经熟悉了Spring Framework,则Spring WebFlux可能更适合您。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Redick01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值