一,Spring Boot 扫包优化

@SpringBootApplication注解自动获取应用的配置信息,会给应用带来一些副作用。由自动配置( auto-configuration )和 组件扫描 ( component scanning )组成,这跟使用 @Configuration、@EnableAutoConfiguration 和 @ComponentScan 三个注解的作用是一样的。这样做给开发带来方便的同时,也会有三方面的影响:
1、会导致项目启动时间变长。当启动一个大的应用程序,或将做大量的集成测试启动应用程序时,影响会特别明显。
2、会加载一些不需要的多余的实例(beans)。
3、会增加 CPU 消耗。
针对以上三个情况,我们可以移除 @SpringBootApplication 然后使用 @Configuration、@EnableAutoConfiguration 和

  @ComponentScan注解来扫描特定的包//@SpringBootApplication@Configuration@EnableAutoConfiguration@ComponentScan(basePackages = {"com.crisp.controller","com.crisp.service"})@MapperScan("com.crisp.mapper")public class Mybatis05Application {public static void main(String[] args) {SpringApplication.run(Mybatis05Application.class, args);}}

二,JVM参数调优

调优策略:初始化堆内存与最大堆相同,减少垃圾回收次数
两种方法:内部启动和外部启动
1.内部启动
实例参数-XX:+PrintGCDetails -Xmx32M -Xms1M
打印GC日志,设置最大堆内存32M,初始堆内存1M
-Xms :设置Java堆栈的初始化大小
-Xmx :设置最大的java堆大小
测试:
第一步,在项目运行,编辑结构中配置参数

第二步,运行项目,查看回收次数

这样配置后,GC回收次数非常多。
更改堆大小后,-XX:+PrintGCDetails -Xmx256M -Xms256M ,GC回收次数减少

外部启动

第一步,通过maven 项目打jar包
配置pom.xml

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><archive><manifest><addClasspath>true</addClasspath><useUniqueVersions>false</useUniqueVersions><classpathPrefix>lib/</classpathPrefix><mainClass>com.crisp.Mybatis05Application</mainClass></manifest></archive></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.4.2</version><configuration><skipTests>true</skipTests></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

mainClass 为入口类
第二步,在Maven Project目录下,点击package

生成jar默认在target 文件夹下

第三步,执行外部启动命令
java -server -Xms32m -Xmx32m -jar mybatis05-0.0.1-SNAPSHOT.jar

第四步,通过jconsole.exe 查看内存



可以看到内存走向,有一个拐点,说明GC在做回收。

Springboot 项目JVM优化相关推荐

  1. springboot项目启动优化

    2019独角兽企业重金招聘Python工程师标准>>> 调试Spring启动速度 <context:component-scan>使用说明 Spring组件扫描<c ...

  2. SpringBoot项目优化和Jvm调优(亲测,真实有效)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:星朝 原文:cnblogs.com/jpfss/p/9753 ...

  3. java项目processes设置,Jvm调优和SpringBoot项目优化的详细教程

    参考文章 1.先看一下未设置JVM参数的情况,默认情况下,没有设置任何Jvm参数. 2.设置Jvm参数. 配置参数: 关于这些设置的JVM参数是什么意思,参考Jvm调优. -XX:MetaspaceS ...

  4. SpringBoot项目优化和Jvm调优(楼主亲测,真实有效)

    今日推荐Spring新版本抛弃JVM,可独立部署,网友:要自立门户???国内大神成功给手机装上了 Win11,代码已开源!Fluent Mybatis 牛逼!Nginx 常用配置清单这玩意比Threa ...

  5. SpringBoot项目优化和Jvm调优及VisualVM远程连接监控JVM(JMX连接)

    项目调优 作为一名工程师,项目调优这事,是必须得熟练掌握的事情. 在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行. 在这边有一篇比较好的文章,推荐给大家! Spring ...

  6. springboot不会运行gc_SpringBoot项目深度优化和Jvm调优

    点击上方"Java学习之道",选择"关注"公众号 每天上班,干货准时送达! 本文作者:星朝 本文来源:www.cnblogs.com/jpfss/p/97532 ...

  7. 这样做优化,实现 0.059s 启动一个SpringBoot项目!

    大家好,我是老赵! 前言 最近自己用Spring Cloud Alibaba做了一个微服务架构的项目,部署的时候遇到了难题:内存不够.目前该项目有7个微服务,因为我只有一台阿里云的服务器(2C 4G) ...

  8. java8的jvm优化_基于JDK8 版本的SpringBoot 启动参数优化(建议收藏)

    Linux端运行项目命令 java -jar -XX:MetaspaceSize=128m-XX:MaxMetaspaceSize=128m-Xms1024m -Xmx1024m-Xmn256m-Xs ...

  9. Docker 部署SpringBoot项目不香吗?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:流星007 链接:toutiao.com/i68433912 ...

最新文章

  1. wordpress自适应表格_给WordPress添加自适应表格 让表格自适应屏幕
  2. JAVA线程六种状态_Java:线程的六种状态及转化
  3. 在weka中配置自己的算法 zz
  4. C++使用kahn实现topological sort拓扑排序算法(附完整源码)
  5. jzoj6313-Maja【dp】
  6. 设计图与html 对比
  7. jq 通过标签名称获取标签_如何快速通过今日头条原创标签的审核?
  8. Serverless实战 —— 三分钟入坑指北 Docsify + Serverless Framework 快速创建个人博客系统
  9. python十大实例_Python练习实例100例(从简入难)96-100
  10. php 目录及文件操作
  11. .NET设计模式(1):1.1 单例模式(Singleton Pattern)
  12. 三分钟带你了解移动通讯办公软件
  13. 给页面加上loading加载效果
  14. Atitit uke协会产业分类法 艾提拉产业分类法五大类法 目录 1. 配第-克拉克定理概述 产业趋势 有形财物的生产转向无形的服务性生产 1 1.1. 农工商趋势法 1 1.2. 1940年,英
  15. spring自动注入模型
  16. 极客范十足!10块钱打造你的专属PCB名片
  17. The forked VM terminated without properly saying goodbye. VM crash or System
  18. 大一计算机题库百度云,《大学计算机基础》试题题库及答案.doc
  19. 资料汇总更新|软件安装包、书籍、源码、技术文档、手册……
  20. ESP32_学习笔记(一)NVS的操作(存储和读取大数组)(为什么存入数据成功,读取却为零的原因)

热门文章

  1. Android----网络图片游览器
  2. C语言 题目 1725: 统计字符
  3. django 按经纬度计算距离排序
  4. 爱情36技之一劳永逸
  5. Hi3861开发环境搭建 ||避坑指南|| [适用于几乎所有以Hi3861为主控的开发板]
  6. win7 64位编译32位应用程序和64位应用程序
  7. 『Three.js』几个简单的入门动画(新手篇)
  8. 使用前端QrCode.js实现根据输入内容生成二维码,并提供二维码下载功能(已使用在交付项目中)
  9. 财务人员办公流程自动化-财务部门RPA机器人流程自动化解决方案
  10. 智能手表 android auto 闪退,小天才电话,升级闪退问题,每次都这样,差评!