网页设计制作个人网站,百度上做推广怎么做,购物网站运营,一个简单的html个人简历代码点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐]项目调优作为一名工程师#xff0c;项目调优这事#xff0c;是必须得熟练掌握的事情。在SpringBoot项目中#xff0c;调优主要通过配置文件和配置JVM的参数的方式进行。一、修改配置文件关于修改配置文件 application.p… 点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐]项目调优作为一名工程师项目调优这事是必须得熟练掌握的事情。在SpringBoot项目中调优主要通过配置文件和配置JVM的参数的方式进行。一、修改配置文件关于修改配置文件 application.properties。SpringBoot项目详细的配置文件修改文档https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html#common-application-properties其中比较重要的有server.tomcat.max-connections0# Maximum number of connections that the server accepts and processes at any given time.server.tomcat.max-http-header-size0# Maximum size, in bytes, of the HTTP message header.server.tomcat.max-http-post-size0# Maximum size, in bytes, of the HTTP post content.server.tomcat.max-threads0# Maximum number of worker threads.server.tomcat.min-spare-threads0# Minimum number of worker threads.二、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这么一大段参数-XX:MetaspaceSize128m -XX:MaxMetaspaceSize128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio8-XX:UseConcMarkSweepGC方式一如果你用的是IDEA等开发工具来启动运行项目那么要调试JDK就方便太多了。只需要将参数值设置到 VM options中即可。设置成功我的GC日志和堆栈分配都已经OK了。GC日志堆栈分配方式二适用于在项目部署后在启动的时候采用脚本或者命令行运行的时候设置。先在项目路径下给项目打包清理就项目mvn clean打包新项目mvn package-Dmaven.test.skiptrue打包完成后进入可运行Jar包的路径下执行启动设置Jvm参数的操作。$ java -jar-XX:MetaspaceSize128m -XX:MaxMetaspaceSize128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio8 -XX:UseConcMarkSweepGC newframe-1.0.0.jar这个时候你再看监控你就会发现已经是Ok的了。堆栈都是按照启动时候设置的Jvm参数启动的。关于这些设置的JVM参数是什么意思请参考第二步中的oracle官方给出的调优文档。我在这边简单说一下-XX:MetaspaceSize128m(元空间默认大小)-XX:MaxMetaspaceSize128m(元空间最大大小)-Xms1024m(堆最大大小)-Xmx1024m(堆默认大小)-Xmn256m(新生代大小)-Xss256k(棧最大深度大小)-XX:SurvivorRatio8(新生代分区比例 8:2)-XX:UseConcMarkSweepGC(指定使用的垃圾收集器这里使用CMS收集器)-XX:PrintGCDetails(打印详细的GC日志)知识点JDK8之后把-XX:PermSize 和 -XX:MaxPermGen移除了取而代之的是-XX:MetaspaceSize128m(元空间默认大小)-XX:MaxMetaspaceSize128m(元空间最大大小)JDK 8开始把类的元数据放到本地化的堆内存(native heap)中这一块区域就叫Metaspace中文名叫元空间。使用本地化的内存有什么好处呢最直接的表现就是java.lang.OutOfMemoryError: PermGen 空间问题将不复存在因为默认的类的元数据分配只受本地内存大小的限制也就是说本地内存剩余多少理论上Metaspace就可以有多大(貌似容量还与操作系统的虚拟内存有关这里不太清楚)这解决了空间不足的问题。不过让Metaspace变得无限大显然是不现实的因此我们也要限制Metaspace的大小使用-XX:MaxMetaspaceSize参数来指定Metaspace区域的大小。JVM默认在运行时根据需要动态地设置MaxMetaspaceSize的大小。好啦祝大家学习和工作顺利啦作者星朝cnblogs.com/jpfss/p/9753215.html---END---觉得本文对你有帮助请分享给更多人关注「全栈开发者社区」加星标提升全栈技能本公众号会不定期给大家发福利包括送书、学习资源等敬请期待吧如果感觉推送内容不错不妨右下角点个在看转发朋友圈或收藏感谢支持。好文章我在看❤️