Java 虚拟机 调优

1、查看JVM所有默认配置
java -XX:+PrintFlagsFinal -version

2、JVM常用设置

1)堆设置

  •     -Xms:初始堆大小
  •     -Xmx:最大堆大小
  •     -Xss:单个线程堆栈大小值
  •     -XX:NewSize=n:设置年轻代大小
  •     -XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4
  •     -XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5
  •     -XX:MaxPermSize=n:设置最大持久代大小
  •     -XX:PermSize=n:设置持久代大小

2)收集器设置

  •     -XX:+UseSerialGC:设置串行收集器
  •     -XX:+UseParallelGC:设置并行收集器
  •     -XX:+UseParalledlOldGC:设置并行年老代收集器
  •     -XX:+UseConcMarkSweepGC:设置并发收集器

3)垃圾回收统计信息

  •     -XX:+PrintGC
  •     -XX:+PrintGCDetails
  •     -XX:+PrintGCTimeStamps
  •     -Xloggc:filename

4)并行收集器设置

  •     -XX:ParallelGCThreads=n:设置并行收集器收集时使用的CPU数。并行收集线程数。
  •     -XX:MaxGCPauseMillis=n:设置并行收集最大暂停时间
  •     -XX:GCTimeRatio=n:设置垃圾回收时间占程序运行时间的百分比。公式为1/(1+n)

5)并发收集器设置

  •     -XX:+CMSIncrementalMode:设置为增量模式。适用于单CPU情况。
  •     -XX:ParallelGCThreads=n:设置并发收集器年轻代收集方式为并行收集时,使用的CPU数。并行收集线程数。


3、JVM优化配置方式
1)命令提示符下启动并使用JVM:
java -Xmx128m -Xms64m -Xmn32m -Xss16m target文件

2)集成开发环境下(如eclipse)启动并使用JVM时:
在eclipse根目录下打开eclipse.ini,默认内容为(这里设置的是运行当前开发工具的JVM内存分配):
-vmargs  -Xms40m  -Xmx256m -vmargs表示以下为虚拟机设置参数,
可修改其中的参数值,也可添加-Xmn,-Xss,
另外,eclipse.ini内还可以设置非堆内存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m。

3)服务器环境下(如Tomcat)启动并使用JVM时(对当前服务器环境下所以Java程序生效):
linux修改配置文件catalina.sh
export JAVA_OPTS= -Xms128m -Xmx512m 设置JAVA虚拟机的内存
export CATALINA_OPTS= -Xms128m -Xmx256m 设置tomcat可以使用多少内存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、什么是JVM  JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。  Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。二、JVM的组成我们先把JVM这个虚拟机画出来,如下图所示:从这张图中我们可以看出,JVM是运行在操作系统之上的,它与硬件没有直接的交互,我们再来看JVM由哪些部分组成,如下图所示:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值