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

 

 

posted @   问北  阅读(1316)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示