| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> SpringBoot 深度调优,让你的项目飞起来 -> 正文阅读 |
|
[Java知识库]SpringBoot 深度调优,让你的项目飞起来 |
项目调优 作为一名工程师,项目调优这事,是必须得熟练掌握的事情。 在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行。 一、修改配置文件 关于修改配置文件 application.properties 。 SpringBoot项目详细的配置文件修改文档 https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html#common-application-properties 其中比较重要的有: 二、Jvm调优 关于Jvm调优Oracle官网有一份指导说明: Oracle官网对Jvm调优的说明 https://docs.oracle.com/middleware/11119/wls/PERFM/jvm_tuning.htm#i1146060 有兴趣大家可以去看看。 三、Jvm调优实战 1、未设置JVM参数的情况 我现在有一个项目,默认情况下,没有设置任何Jvm参数。 下面我来启动看一下。 看一下堆栈分配: 很明显默认的最大堆内存分配了8个G。很明显的不合理嘛。 2、下面我们来设置下Jvm参数 例如要配置JVM这么一大段参数: 方式一: 如果你用的是IDEA等开发工具,来启动运行项目,那么要调试JDK就方便太多了。 只需要将参数值设置到 VM options 中即可。 设置成功,我的GC日志和堆栈分配都已经OK了。 GC日志: 堆栈分配: 方式二: 适用于在项目部署后,在启动的时候,采用脚本或者命令行运行的时候设置。 先在项目路径下,给项目打包: 清理就项目 打包新项目: 打包完成后进入可运行Jar包的路径下: 执行启动设置Jvm参数的操作。 这个时候,你再看监控,你就会发现,已经是Ok的了。 堆栈都是按照启动时候,设置的Jvm参数启动的。 关于这些设置的JVM参数是什么意思,请参考第二步中的oracle官方给出的调优文档。 我在这边简单说一下: 知识点: JDK8之后把-XX:PermSize 和 -XX:MaxPermGen移除了,取而代之的是 JDK 8开始把类的元数据放到本地化的堆内存(native heap)中,这一块区域就叫Metaspace,中文名叫元空间 。整编:微信公众号,搜云库技术团队,ID:souyunku 使用本地化的内存有什么好处呢?最直接的表现就是 使用-XX:MaxMetaspaceSize参数来指定Metaspace区域的大小。 JVM默认在运行时根据需要动态地设置MaxMetaspaceSize的大小。 好啦,祝大家学习和工作顺利啦! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 7:35:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |