SpringBoot入門-SpringBoot性能優化


SpringBoot啟動優化

顯示聲明掃包范圍:

即不使用@SpringBootApplication默認掃包,使用@ComponentScan(basePackages = { "com.xxx.controller" ,"com.xxx.service" })顯示聲明掃包范圍。

原因是@SpringBootApplication默認掃包,掃的是啟動類下的所有子包,實際開發場景中有很多包是不需要掃的,所以用默認的掃包會去掃很多本來就不用掃的包。

驗證是否有優化效果的時候,如果是自己寫的demo,驗證不出來,因為包和類太少了,可以用公司的實際項目驗證一下,啟動會快很多。

SpringBoot運行優化

使用Undertow服務器:

默認情況下,SpringBoot使用Tomcat來作為內嵌的servlet容器。可以將web服務器切換到Undertow來提高應用性能。

Undertow是一個采用Java開發的靈活的高性能web服務器,提供包括阻塞和基於NIO的非阻塞機制。Undertow是紅帽公司的開源產品,是Wildfly默認的web服務器。

過多的就不在介紹了,自行百度了解更多。

首先移除Tomcat

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
       <exclusions>
            <exclusion>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
       </exclusions>
</dependency>

添加Undertow

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-undertow</artifactId>
</dependency>

Tomcat 與 Undertow 吞吐量對比(在本人電腦上實際測試):

 

SpringBoot JVM參數調優:

根據服務器的內存大小,來設置堆參數。

-Xms :設置Java堆棧的初始化大小

-Xmx :設置最大的java堆大小

實例參數-XX:+PrintGCDetails -Xmx32M -Xms1M

本地項目調優

 

 

外部運行調優

java -server -Xms32m -Xmx32m  -jar springboot_v2.jar

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM