日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java线程数翻倍性能翻倍_术业专攻 | 如何让Java Web性能翻倍?

發布時間:2025/3/20 java 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java线程数翻倍性能翻倍_术业专攻 | 如何让Java Web性能翻倍? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如何讓Java Web 的性能翻倍???答曰——

響應式編程

響應式編程說來話長,概念也比較晦澀難懂,畫風也與我們常用的命令式編程不一樣。說清它的來龍去脈并不是小編今天的重點,我們只需要知道它是關于構建異步、事件驅動的非阻塞I/O應用即可。

要說明的是,此響應式(Reactive)非彼響應式(Responsive)。

雖然小編認為應該翻譯為“反應式”。不過國內已翻譯為“響應式”了,為避免混淆,本文也采用相同的術語。你知道本文說的不是H5那個響應式,就可以了。

Spring WebFlux

Spring框架從5.0開始擁抱ReactiveStreams規范,這個規范亦被Java9吸納為java.util.concurrent.Flow。而Spring WebFlux則是Spring團隊推出的基于響應式編程模型的Web框架。

性能測試

接下來我們通過測試,看看spring-webflux框架相對于自家的spring-webmvc,在性能上有什么差異。

我們測試以下3個框架:

1.spring-webmvc

2.spring-webflux

3.node.js?+ koa2(用以性能著稱的Node.js做參考)

三個框架均提供一個HTTP接口,直接返回“Hello World”字符串。

另外,JVM與Node均不作性能調優。

硬件方面,使用兩臺網絡直通的DigitalOcean云主機兩臺:

主機

配置

角色

benchmark-01

2U /?2GB

受壓服務器

benchmark-02

1U / 1GB

壓力源服務器

壓測使用wrk,并發數從100開始,每次遞增100,直至1000。每個框架采樣6次,取平均值。

由于我們著重考慮高并發下的性能,限于篇幅,我們對比在1000并發下,3個框架的性能指標:

框架

CPU占用率

內存使用

線程數

平均QPS

備注

spring-webmvc

198%

380M

2115

6621

spring-webflux

198%

390M

19

13112

koa2

198%

200M

12

13832

使用PM2啟動2個實例,以充分利用多核

可以看出,在同等用例下,spring-webflux有相對于spring-webmvc兩倍的QPS,能夠達到與Node差不多的性能。

我們都知道,越多的線程意味著越多的CPU上下文切換消耗。在1000并發下,spring-webflux僅需19個線程,而spring-webmvc則需要使用2000多個線程。從結果來看,3個case的CPU均跑滿,因此服務器的瓶頸為CPU,可以推測,在多核多CPU的服務器下,性能差距會進一步加大。

另外,這只是純框架層面的測試,響應式的優勢在I/O密集、復雜業務場景,在這類場景下優勢會更為明顯。

總結

spring-webflux還處于Milestone階段,在性能上的提升已經足夠誘人。況且響應式編程模型還納入了Java 9的API,有構建高并發應用,而又希望繼續使用統一的Java技術棧的團隊,可以持續關注。

總結

以上是生活随笔為你收集整理的java线程数翻倍性能翻倍_术业专攻 | 如何让Java Web性能翻倍?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。