- 浏览: 1250088 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (193)
- ant/maven (6)
- algorithm (5)
- tomcat/weblogic/jboss (6)
- javascript/jquery (13)
- java (33)
- flex/flash (0)
- JPA/Hibernate/myBatis (18)
- java concurrent (7)
- test (2)
- windows/linux (6)
- java collection (7)
- design pattern (2)
- life/health (3)
- database (12)
- IDE (4)
- spring/ejb (20)
- html/css/ckeditor (7)
- jsp/servlet (3)
- java io (13)
- java security (4)
- jni (0)
- svn/git (2)
- english (2)
- java jmx (1)
- xml (1)
- struts/springmvc (9)
- middleware (2)
- cache (1)
- cglib (3)
最新评论
-
jlotusYo:
博主,真感谢。
Java 密码扩展无限制权限策略文件 -
senninha:
这个。。是api说明吧。。
ScheduledExecutorService 源码分析 -
zoutao2008:
请问大文件如何处理?按你这种方式的话,文件超过200M时就会报 ...
hessian系列之二:上传文件 -
lwj1113:
lwj1113 写道谢谢博主这么细致的demo;在系列五中通过 ...
myBatis系列之五:与Spring3集成 -
lwj1113:
谢谢博主这么细致的demo;在系列五中通过testng测试类跑 ...
myBatis系列之五:与Spring3集成
a. 对于布尔型的选项:-XX:+<option> 启用;-XX:-<option> 禁用
b. 对于数值型的选项:-XX:<option>=<number>。
单位: k/K - kilobytes
m/M - megabytes
g/G - gigabytes
c. 对于字符型的选项:-XX:<option>=<string>
d. jvm对大小写敏感。
1. 行为型参数
-XX:+DisableExplicitGC
禁用显式的System.GC()调用。
-XX:+RelaxAccessControlCheck
在核查器中放宽入侵控制检查
-XX:+ScavengeBeforeFullGC
新生代GC优先于Full GC执行
-XX:+UseConcMarkSweepGC
为年老代/永久代使用并发标记-清除收集器
-XX:+UseSerialGC
使用串行垃圾收集
-XX:+UseParallelGC
使用并行垃圾收集,此配置仅对年轻代有效。不能和-XX:+UseSerialGC同时使用
-XX:+UseParallelOldGC
对所有代使用并行垃圾收集器,启用该项将自动启用-XX:+UseParallelGC
-Xint
只使用解释执行模式
-client
client模式,默认模式。使用C1优化,一般用于桌面应用程序。
-server
使用C2优化,多用于服务器应用程序。
-Xnoclassgc
禁止类的垃圾回收。
-Xincgc
启用增量垃圾回收
-Xbootclasspath:
设置引导类加载器需要加载的目录、zip/jar等,使用分号隔开。
-Xbootclasspath/a:
设置引导类加载器最后需要加载的目录、zip/jar等,使用分号隔开。如-Xbootclasspath/a:D:/mvn/org/apache/ant/ant/1.5.3/ant-1.5.3.jar;E:/ant-1.6.0.jar
-Xbootclasspath/p:
设置引导类加载器最先需要加载的目录、zip/jar等,使用分号隔开
2. 垃圾回收参数
-XX:MaxGCPauseMillis
设置每次垃圾回收的最长时间。这是一个软目标,jvm将尽可能满足该参数。
-XX:NewRatio=n
年老代/年轻代的比率,默认值为2。因为堆内存=年轻代+年老代。此时年轻代占堆内存的1/3。
-XX:SurvivorRatio=n
Eden区和其中一个Survivor区的比率。默认值为8。因为年轻代=1个Eden+2个Survivor,所以此时每个Survivor区占年轻代的1/10。
-XX:MaxTenuringThreshold=n
如果一个对象在Survivor区移动n次还没有被回收,就放入年老代。默认值为15。
-XX:ParallelGCThreads=n
配置并行收集器的线程数。即多少个线程同时进行垃圾回收。最好配置此值与处理器数目相等。
3. 性能调优参数
-Xms256M
设置初始堆内存为256M
-Xmx512M
设置最大堆内存为512M
-Xmn96M
设置年轻代大小为96M
-Xss1M
设置线程栈大小为1M
-XX:PermSize=128M
设置永久代的内存为128M
-XX:MaxPermSize=256M
设置永久代的最大内存为256M。默认永久代的最大内存为64M。
-XX:NewSize=20M
年轻代的默认大小为20M。
-XX:MaxNewSize=100M
年轻代的最大内存为100M。
-XX:CompileThreshold=10000
方法被调用次数达到该阀值时,就编译为机器码。server模式默认10000,client模式默认1500。
-XX:MaxHeapFreeRatio=70
垃圾回收后,空闲堆所占的最大比例。大于该值后,堆就会被收缩。
-XX:MinHeapFreeRatio=40
垃圾回收后,空闲堆所占的最小比例。小于该值后,堆就会被扩展。
4. 调试跟踪参数
-XX:+PrintGC
打印垃圾回收信息。
-XX:+PrintGCDetails
打印垃圾回收详细信息。
-XX:+PrintHeapAtGC
打印GC前后的详细堆栈信息。
示例:
{Heap before GC invocations=19 (full 1):
def new generation total 78720K, used 74234K [0x03ae0000, 0x09040000, 0x0e580000)
eden space 70016K, 100% used [0x03ae0000, 0x07f40000, 0x07f40000)
from space 8704K, 48% used [0x07f40000, 0x0835e8a8, 0x087c0000)
to space 8704K, 0% used [0x087c0000, 0x087c0000, 0x09040000)
tenured generation total 174784K, used 66479K [0x0e580000, 0x19030000, 0x23ae0000)
the space 174784K, 38% used [0x0e580000, 0x1266bc50, 0x1266be00, 0x19030000)
compacting perm gen total 196608K, used 42690K [0x23ae0000, 0x2fae0000, 0x2fae0000)
the space 196608K, 21% used [0x23ae0000, 0x26490a08, 0x26490c00, 0x2fae0000)
No shared spaces configured.
26.497: [GC 26.497: [DefNew: 74234K->6916K(78720K), 0.0231646 secs] 140713K->73395K(253504K), 0.0232168 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
Heap after GC invocations=20 (full 1):
def new generation total 78720K, used 6916K [0x03ae0000, 0x09040000, 0x0e580000)
eden space 70016K, 0% used [0x03ae0000, 0x03ae0000, 0x07f40000)
from space 8704K, 79% used [0x087c0000, 0x08e81170, 0x09040000)
to space 8704K, 0% used [0x07f40000, 0x07f40000, 0x087c0000)
tenured generation total 174784K, used 66479K [0x0e580000, 0x19030000, 0x23ae0000)
the space 174784K, 38% used [0x0e580000, 0x1266bc50, 0x1266be00, 0x19030000)
compacting perm gen total 196608K, used 42690K [0x23ae0000, 0x2fae0000, 0x2fae0000)
the space 196608K, 21% used [0x23ae0000, 0x26490a08, 0x26490c00, 0x2fae0000)
No shared spaces configured.
}
-XX:+PrintGCTimeStamps
打印垃圾回收的时间戳。
-XX:+PrintTenuringDistribution
打印对象再永久代的生存期信息。
-XX:InlineSmallCode=25
当编译好的方法的本地码小于此值时,内联此方法。
-XX:MaxInlineSize=35
能被内联的方法的最大字节码大小。
-XX:FreqInlineSize=35
能被内联的频繁调用的方法的最大字节码大小。
-Xloggc:<file>
输出带时间戳的垃圾回收状态信息到指定的文件。使用此项会导致Console上不显示垃圾回收信息。
-XX:+HeapDumpOnOutOfMemoryError
堆内存溢出时dump文件,以供分析
b. 对于数值型的选项:-XX:<option>=<number>。
单位: k/K - kilobytes
m/M - megabytes
g/G - gigabytes
c. 对于字符型的选项:-XX:<option>=<string>
d. jvm对大小写敏感。
1. 行为型参数
-XX:+DisableExplicitGC
禁用显式的System.GC()调用。
-XX:+RelaxAccessControlCheck
在核查器中放宽入侵控制检查
-XX:+ScavengeBeforeFullGC
新生代GC优先于Full GC执行
-XX:+UseConcMarkSweepGC
为年老代/永久代使用并发标记-清除收集器
-XX:+UseSerialGC
使用串行垃圾收集
-XX:+UseParallelGC
使用并行垃圾收集,此配置仅对年轻代有效。不能和-XX:+UseSerialGC同时使用
-XX:+UseParallelOldGC
对所有代使用并行垃圾收集器,启用该项将自动启用-XX:+UseParallelGC
-Xint
只使用解释执行模式
-client
client模式,默认模式。使用C1优化,一般用于桌面应用程序。
-server
使用C2优化,多用于服务器应用程序。
-Xnoclassgc
禁止类的垃圾回收。
-Xincgc
启用增量垃圾回收
-Xbootclasspath:
设置引导类加载器需要加载的目录、zip/jar等,使用分号隔开。
-Xbootclasspath/a:
设置引导类加载器最后需要加载的目录、zip/jar等,使用分号隔开。如-Xbootclasspath/a:D:/mvn/org/apache/ant/ant/1.5.3/ant-1.5.3.jar;E:/ant-1.6.0.jar
-Xbootclasspath/p:
设置引导类加载器最先需要加载的目录、zip/jar等,使用分号隔开
2. 垃圾回收参数
-XX:MaxGCPauseMillis
设置每次垃圾回收的最长时间。这是一个软目标,jvm将尽可能满足该参数。
-XX:NewRatio=n
年老代/年轻代的比率,默认值为2。因为堆内存=年轻代+年老代。此时年轻代占堆内存的1/3。
-XX:SurvivorRatio=n
Eden区和其中一个Survivor区的比率。默认值为8。因为年轻代=1个Eden+2个Survivor,所以此时每个Survivor区占年轻代的1/10。
-XX:MaxTenuringThreshold=n
如果一个对象在Survivor区移动n次还没有被回收,就放入年老代。默认值为15。
-XX:ParallelGCThreads=n
配置并行收集器的线程数。即多少个线程同时进行垃圾回收。最好配置此值与处理器数目相等。
3. 性能调优参数
-Xms256M
设置初始堆内存为256M
-Xmx512M
设置最大堆内存为512M
-Xmn96M
设置年轻代大小为96M
-Xss1M
设置线程栈大小为1M
-XX:PermSize=128M
设置永久代的内存为128M
-XX:MaxPermSize=256M
设置永久代的最大内存为256M。默认永久代的最大内存为64M。
-XX:NewSize=20M
年轻代的默认大小为20M。
-XX:MaxNewSize=100M
年轻代的最大内存为100M。
-XX:CompileThreshold=10000
方法被调用次数达到该阀值时,就编译为机器码。server模式默认10000,client模式默认1500。
-XX:MaxHeapFreeRatio=70
垃圾回收后,空闲堆所占的最大比例。大于该值后,堆就会被收缩。
-XX:MinHeapFreeRatio=40
垃圾回收后,空闲堆所占的最小比例。小于该值后,堆就会被扩展。
4. 调试跟踪参数
-XX:+PrintGC
打印垃圾回收信息。
-XX:+PrintGCDetails
打印垃圾回收详细信息。
-XX:+PrintHeapAtGC
打印GC前后的详细堆栈信息。
示例:
{Heap before GC invocations=19 (full 1):
def new generation total 78720K, used 74234K [0x03ae0000, 0x09040000, 0x0e580000)
eden space 70016K, 100% used [0x03ae0000, 0x07f40000, 0x07f40000)
from space 8704K, 48% used [0x07f40000, 0x0835e8a8, 0x087c0000)
to space 8704K, 0% used [0x087c0000, 0x087c0000, 0x09040000)
tenured generation total 174784K, used 66479K [0x0e580000, 0x19030000, 0x23ae0000)
the space 174784K, 38% used [0x0e580000, 0x1266bc50, 0x1266be00, 0x19030000)
compacting perm gen total 196608K, used 42690K [0x23ae0000, 0x2fae0000, 0x2fae0000)
the space 196608K, 21% used [0x23ae0000, 0x26490a08, 0x26490c00, 0x2fae0000)
No shared spaces configured.
26.497: [GC 26.497: [DefNew: 74234K->6916K(78720K), 0.0231646 secs] 140713K->73395K(253504K), 0.0232168 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
Heap after GC invocations=20 (full 1):
def new generation total 78720K, used 6916K [0x03ae0000, 0x09040000, 0x0e580000)
eden space 70016K, 0% used [0x03ae0000, 0x03ae0000, 0x07f40000)
from space 8704K, 79% used [0x087c0000, 0x08e81170, 0x09040000)
to space 8704K, 0% used [0x07f40000, 0x07f40000, 0x087c0000)
tenured generation total 174784K, used 66479K [0x0e580000, 0x19030000, 0x23ae0000)
the space 174784K, 38% used [0x0e580000, 0x1266bc50, 0x1266be00, 0x19030000)
compacting perm gen total 196608K, used 42690K [0x23ae0000, 0x2fae0000, 0x2fae0000)
the space 196608K, 21% used [0x23ae0000, 0x26490a08, 0x26490c00, 0x2fae0000)
No shared spaces configured.
}
-XX:+PrintGCTimeStamps
打印垃圾回收的时间戳。
-XX:+PrintTenuringDistribution
打印对象再永久代的生存期信息。
-XX:InlineSmallCode=25
当编译好的方法的本地码小于此值时,内联此方法。
-XX:MaxInlineSize=35
能被内联的方法的最大字节码大小。
-XX:FreqInlineSize=35
能被内联的频繁调用的方法的最大字节码大小。
-Xloggc:<file>
输出带时间戳的垃圾回收状态信息到指定的文件。使用此项会导致Console上不显示垃圾回收信息。
-XX:+HeapDumpOnOutOfMemoryError
堆内存溢出时dump文件,以供分析
发表评论
-
Netty系列之二、Netty组件
2014-10-12 19:55 0Netty主要由以下几个组件构成: Bootstrap o ... -
Netty系列之二:传输方式
2014-09-17 22:35 0NIO (Non-blocking I/O) io.netty ... -
Java正则表达式实例
2014-08-25 22:50 1943题目: 有两个文件context.txt和words ... -
quartz系列之九:存储
2014-08-05 13:16 0这里以1.8.x为例: 任务 ... -
JVM 四种引用
2014-04-24 19:56 17741. 强引用 指通过普通 ... -
Proxy 源码分析
2014-04-21 10:47 0public class Proxy implements ... -
NIO UDP 编程
2014-04-17 23:18 4260和TCP的SocketChannel类似,UDP的Dat ... -
Matcher 源码分析
2014-04-15 14:45 0首先看下接口: public interface Matc ... -
BTrace 使用
2014-03-20 18:03 0简介 Btrace (Byte Trace)是Sun推出的一款 ... -
NIO Socket 编程
2014-04-11 22:48 1665Java NIO (Nonblocking IO)解决了常规I ... -
hessian系列之二:上传文件
2014-02-17 17:16 6228hessian较早版本通过 byte[] 进行文件传输;4.0 ... -
hessian系列之三:与Spring集成
2014-02-17 20:21 17900Spring封装了hessian客户端和服务端的通用代码,把实 ... -
hessian系列之一:Hello world
2014-01-06 20:51 2301Hessian是一个Web Service的轻量级二进制协议, ... -
XStream:自定义转换器
2013-12-30 22:47 0XStream是一款不错的oxm (Object-XML ma ... -
Http连接工具类
2013-12-28 16:13 0public class HttpConnUtil { ... -
Integer源码分析
2013-12-26 19:59 0private static String toU ... -
全排序
2013-12-23 21:02 0写一个函数, 如 foo(String str), 打印出 s ... -
logback系列之四:输出日志到不同文件
2013-12-03 16:25 69053logback系列之一:输出日志到控制台 logback系列之 ... -
Properties 源码分析
2013-11-26 10:32 01. Properties类扩展了Hashtable,用来保存 ... -
logback系列之三:输出日志到文件(滚动)
2013-11-16 23:37 64437logback系列之一:输出日志到控制台 logback系列之 ...
相关推荐
### Tomcat 6.0 修改启动内存设置及 Java JVM 参数配置详解 #### 一、背景与目的 在部署和运行 Java Web 应用时,合理地配置应用服务器(如 Apache Tomcat)的内存是非常重要的。这不仅可以提升应用程序的性能,还...
常用jvm参数都在这张图中,参考起来方便,是国外大神整理的
### 关键业务系统JVM参数推荐 #### 一、引言 在关键业务系统中,除了追求高吞吐量和低延迟之外,系统的稳定性和问题排查的便捷性同样至关重要。因此,选择合适的JVM参数变得尤为重要。本文将详细介绍一些常用的JVM...
**: 显示帮助信息,介绍可用的所有JVM参数。 - 示例:`-help` 3. **-fullversion**: 输出JVM的完整版本信息。 - 示例:`-fullversion` 4. **-showversion**: 显示JVM的版本信息。 - 示例:`-showversion` 5. *...
### JVM参数设置详解 在Java应用开发与维护过程中,JVM(Java虚拟机)的配置至关重要,它直接影响到应用程序的性能表现与稳定性。本文将基于提供的文件内容,深入解析Linux环境下JVM的基本参数设置方法及原理。 ##...
### 设置Eclipse的JVM参数 #### 一、引言 在进行Java开发时,Eclipse作为一款广泛使用的集成开发环境(IDE),其性能优化对于提高开发效率和应用稳定性至关重要。其中,设置合适的JVM(Java虚拟机)参数是优化...
### JVM参数配置详解 #### 一、理解JVM参数配置的重要性 Java Virtual Machine (JVM) 是运行Java程序的核心环境,其性能优化很大程度上依赖于正确的JVM参数配置。合理配置JVM参数不仅可以显著提升应用程序的运行...
JVM 参数与系统性能的优化 在 Java 虚拟机(JVM)中,参数设置对系统性能的影响是至关重要的。通过设置合适的 JVM 参数,可以提高系统性能,减少垃圾回收的频率和时间,提高应用程序的执行效率。 第一点:设置堆栈...
本文将深入探讨JVM参数及其与Java垃圾收集相关的知识。 一、JVM参数详解 JVM参数可以分为三类:启动参数(-X),标准参数(-XX),以及非公开(实验性)参数(-XX:)。这些参数允许开发者对JVM的行为进行精细调整...
JVM参数设置是优化Java应用性能的关键环节,它可以帮助我们控制JVM的行为,如内存分配、垃圾回收策略、线程调度等。下面将详细介绍一些重要的JVM参数及其作用。 1. 内存设置: - `-Xms` 和 `-Xmx`:这两个参数用于...
根据JVM参数的设置,堆可以被划分为新生代和老年代,新生代又进一步细分为Eden区和两个Survivor区。5、方法区:也称为永久代,存储类的信息、常量、静态变量等,JDK 8之后被元空间(Metaspace)取代,元空间使用的是...
本篇文件内容主要介绍了JVM优化的第三部分,重点围绕Tomcat参数调优、JVM参数调优、JVM字节码优化以及代码优化等几个方面。下面是针对这些知识点的详细解释: 1. Tomcat参数调优 在Tomcat参数调优部分,首先介绍了...
特别是在Java、J2EE等大型应用中,通过合理设置JVM参数可以极大提升系统的整体性能与稳定性。 #### JVM 非标准参数的重要性 JVM非标准参数主要指那些用于优化JVM内部行为的配置项,这些参数通常在开发阶段被忽略或...
【JVM参数配置详解】 Java Virtual Machine (JVM) 是Java程序的核心组成部分,它负责解析和执行Java程序的字节码。JVM的设计目标是提供跨平台的运行环境,通过在实际硬件上模拟一个虚拟的计算机系统,使得Java程序...
Linux 服务器调优与 JVM 参数调优 本文主要介绍了 Linux 服务器调优和 JVM 参数调优的相关知识点,以便提高服务器性能和 JVM 应用程序的运行效率。 Linux 服务器调优 Linux 服务器调优是指对 Linux 操作系统的...
JVM参数调优是优化Java应用程序性能的关键环节,尤其是在服务器端的应用中,如Web服务器Resin。本实践案例中,作者分别尝试了三种不同的垃圾回收(GC)策略:串行回收、并行回收和并发回收,并针对每种策略提供了...
以下是一些关键的JVM参数及其作用: 1. **Xms** 和 **Xmx**: 这两个参数用于设置Java堆内存的大小。`Xms`设定初始堆大小,而`Xmx`设定最大堆大小。确保`Xms`小于或等于`Xmx`,以避免内存不足错误。通常,它们的值会...