JVM怎么进行参数优化?(jvm性能调优+内存模型+虚拟机原理能解决什么问题)

作者:佚名      发布时间:2021-08-17      浏览量:55131
JVM怎么进行参数优化?典型JVM参数设置: java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -Xmx3550m:设置JVM最大可用内存为3550M。 -Xms3550m:设置JVM促使内存为3550m。此

JVM怎么进行参数优化?


典型JVM参数设置: java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -Xmx3550m:设置JVM最大可用内存为3550M。 -Xms3550m:设置JVM促使内存为3550m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。 -Xmn2g:设置年轻代大小为2G。整个堆大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8

jvm性能调优+内存模型+虚拟机原理能解决什么问题


但是在平常编程中,肯定经常遇到OOM问题。
jvm的内存模型,简单来说就是堆栈结构,实际上内存的划分很复杂。推荐《深入java虚拟机》来入门了解。
栈溢出和堆溢出,顾名思义,就是栈和堆上的内存不够用了,就抛出OOM异常呗。可以通过调整参数来控制堆栈的内存大小:-Xmn -Xmx
GC就是针对堆,栈,方法区的垃圾回收行为。这些问题还是要看书的,打字打死也说不完。

设置java虚拟机jvm启动内存参数方法如下:
tomcat修改tomcat_home/bin/catalina.bat,在[

jvm性能调优都做了什么


JVM性能调优有很多设置,这个参考JVM参数即可.

主要调优的目的:

控制GC的行为.GC是一个后台处理,但是它也是会消耗系统性能的,因此经常会根据系统运行的程序的特性来更改GC行为

控制JVM堆栈大小.一般来说,JVM在内存分配上不需要你修改,(举例)但是当你的程序新生代对象在某个时间段产生的比较多的时候,就需要控制新生代的堆大小.同时,还要需要控制总的JVM大小避免内存溢出

控制JVM线程的内存分配.如果是多线程程序,产生线程和线程运行所消耗的

JVM怎么优化?


这个问题很大,一般来说就是设置一下启动参数,比如-Xms512m -Xmx512m -XX:NewSize=128m -XX:MaxNewSize=128m

这些是配置jboss运行的jvm优化参数。 -xms256m 初始的java内存堆大小 256m -xmx2048m 最大的java内存堆大小 2048m -xx:permsize=128m gc预留的内存,如果