一、掃描優(yōu)化
SpringBoot項目中的啟動類,會使用@SpringBootApplication 注解,該注解的作用掃描外部依賴項目(例如:Tomcat,SpringMVC,Transaction等)以及運行一些自動配置類。
@SpringBootApplication注解中包含了@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan等等,通過以下配置

通過debug啟動項目在控制臺中會打印出日志:

通過上面的日志可以看出需要掃描匹配的項=Positive matches: 需要匹配項 + Unconditional classes: 必須匹配項,那么掃描優(yōu)化就是將這些需要匹配的項直接通過@import注解直接引入,則節(jié)省出掃描時間。例:

如果啟動一個大的應(yīng)用程序或者將做大量的集成測試啟動應(yīng)用程序的時候,這種優(yōu)化方式可以減少啟動時間,避免加載其他不必要的資源,減少CPU的消耗。
二、JVM參數(shù)調(diào)優(yōu)
先了解兩個配置指令
(1)-Xmx:設(shè)置最大的java堆大小
(2) -Xms:設(shè)置Java堆棧的初始化大小
idea工具中配置jvm內(nèi)存大小

對當(dāng)前應(yīng)用程序的堆內(nèi)存最大配置為32M,初始配置為10M(可以根據(jù)自己的項目適當(dāng)縮小,有的項目縮小到1M或者更小會無法啟動,本人的機器設(shè)置為1M就無法啟動項目),設(shè)置好后,啟動項目,控制臺打印結(jié)果如下:

控制臺會頻繁的輸出GC和Full GC,因為配置的堆內(nèi)存太小的原因,堆內(nèi)存配置越大,GC和Full GC會出現(xiàn)的越少。在生產(chǎn)項目中,-Xmx和-Xms這兩個值應(yīng)該配置相同,并根據(jù)運行服務(wù)器硬件環(huán)境適當(dāng)去配置。頻繁的GC和Full GC是非常消耗CPU的性能的,JVM優(yōu)化的重要指標(biāo)就是不能頻繁出現(xiàn)Full GC。
監(jiān)控應(yīng)用的內(nèi)存使用,可以使用jdk提供的工具在jdk安裝bin目錄下jvisualvm.exe

三、根據(jù)項目采用合適的容器
現(xiàn)在最流行也最常用的就是tomcat容器,tomcat是默認(rèn)支持jsp的,當(dāng)然也可以去優(yōu)化tomcat,關(guān)閉tomcat對jsp的支持。如果不優(yōu)化tomcat也可以在項目中更換使用其他容器,例如:Undertow,該容器默認(rèn)是不支持jsp。減少一些其他不需要的支持來提升容器啟動和運行效率。
首先在pom.xml中排除使用tomcat容器

加入對Undertow容器的依賴

啟動容器運行結(jié)果:

測試性能是否提升可以使用jMeter壓測工具:

在項目中分別使用Tomcat和Undertow容器,然后使用jMeter工具進行壓測,然后對比分別使用兩個容器的并發(fā)處理能力。