- 浏览: 587627 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (231)
- JAVA (64)
- Oracle (50)
- JAVA IDE (10)
- AJax (8)
- Spring (12)
- hibernate (10)
- Struts (9)
- Jquery (7)
- EXT js (9)
- Tomcat (2)
- MySql (13)
- SQLServer 2005 (3)
- java script (10)
- DB2 (6)
- Linux (15)
- solaris (3)
- 开发模式 (16)
- windows (15)
- 硬件 (2)
- PHP (3)
- 框架整合 (17)
- Weblogic (12)
- JBOSS (1)
- 协议 (7)
- 云计算 (6)
- JSF (1)
- richfaces (1)
- python (1)
最新评论
-
woshiicesky:
怎么使用的?
解决jdk1.7 不支持TLS1.2的问题 -
sunzbking:
哇!大佬谢谢分享解决问题啦
解决jdk1.7 不支持TLS1.2的问题 -
doren:
谢谢,很好解决我们的问题
解决jdk1.7 不支持TLS1.2的问题 -
贝塔ZQ:
PageOffice插件,挺好使得,可以试试
POI解析Excel 文件读取,修改,另存等功能 -
程俊2009:
需要用哪些jar,可以说下吗
jdom读写XMl文件
功能开关:
参数 | 默认值 | 功能 |
-XX:-AllowUserSignalHandlers | 限于Linux和Solaris,默认不启用 | 允许为java进程安装信号处理器,信号处理参见类:sun.misc.Signal, sun.misc.SignalHandler |
-XX:+DisableExplicitGC | 默认启用 | 禁止在运行期显式地调用System.gc() |
-XX:+FailOverToOldVerifier | Java6新引入选项,默认启用 | 如果新的Class校验器检查失败,则使用老的校验器(失败原因:因为JDK6最高向下兼容到JDK1.2,而JDK1.2的class info 与JDK6的info存在较大的差异,所以新校验器可能会出现校验失败的情况) |
-XX:+HandlePromotionFailure | java5以前是默认不启用,java6默认启用 | 关闭新生代收集担保 |
-XX:+MaxFDLimit | 限于Solaris,默认启用 | 设置java进程可用文件描述符为操作系统允许的最大值。 |
-XX:PreBlockSpin=10 | -XX:+UseSpinning 必须先启用,对于java6来说已经默认启用了,这里默认自旋10次 | 控制多线程自旋锁优化的自旋次数 |
-XX:-RelaxAccessControlCheck | 默认不启用 | 在Class校验器中,放松对访问控制的检查,作用与reflection里的setAccessible类似 |
-XX:+ScavengeBeforeFullGC | 默认启用 | 在Full GC前触发一次Minor GC |
-XX:+UseAltSigs | 限于Solaris,默认启用 | 为了防止与其他发送信号的应用程序冲突,允许使用候补信号替代 SIGUSR1和SIGUSR2 |
-XX:+UseBoundThreads | 限于Solaris, 默认启用 | 绑定所有的用户线程到内核线程, 减少线程进入饥饿状态(得不到任何cpu time)的次数 |
-XX:-UseConcMarkSweepGC | 默认不启用 | 启用CMS低停顿垃圾收集器,减少FGC的暂停时间 |
-XX:+UseGCOverheadLimit | 默认启用 | 限制GC的运行时间。如果GC耗时过长,就抛OOM |
-XX:+UseLWPSynchronization | 限于solaris,默认启用 | 使用轻量级进程(内核线程)替换线程同步 |
-XX:-UseParallelGC | -server时启用,其他情况下,默认不启用 | 策略为新生代使用并行清除,年老代使用单线程Mark-Sweep-Compact的垃圾收集器 |
-XX:-UseParallelOldGC | 默认不启用 | 策略为老年代和新生代都使用并行清除的垃圾收集器 |
-XX:-UseSerialGC | -client时启用,其他情况下,默认不启用 | 使用串行垃圾收集器 |
-XX:-UseSpinning | java1.4.2和1.5需要手动启用, java6默认已启用 | 启用多线程自旋锁优化 |
-XX:+UseTLAB | 1.4.2以前和使用-client选项时,默认不启用,其余版本默认启用 | 启用线程本地缓存区 |
-XX:+UseSplitVerifier | java5默认不启用, java6默认启用 | 使用新的Class类型校验器 |
-XX:+UseThreadPriorities | 默认启用 | 使用本地线程的优先级 |
-XX:+UseVMInterruptibleIO | 限于solaris,默认启用 | 在solaris中,允许运行时中断线程 |
性能参数:
-XX:+AggressiveOpts | JDK 5 update 6后引入,但需要手动启用, JDK6默认启用 | 启用JVM开发团队最新的调优成果。例如编译优化,偏向锁,并行年老代收集等 |
-XX:CompileThreshold=10000 | 1000 | 通过JIT编译器,将方法编译成机器码的触发阀值,可以理解为调用方法的次数,例如调1000次,将方法编译为机器码 |
-XX:LargePageSizeInBytes=4m | 默认4m, amd64位:2m | 设置堆内存的内存页大小 |
-XX:MaxHeapFreeRatio=70 | 70 | GC后,如果发现空闲堆内存占到整个预估上限值的70%,则收缩预估上限值 |
-XX:MaxNewSize=size | 1.3.1 Sparc: 32m, 1.3.1 x86: 2.5m | 新生代占整个堆内存的最大值 |
-XX:MaxPermSize=64m | 5.0以后: 64 bit VMs会增大预设值的30%, 1.4 amd64: 96m, 1.3.1 -client: 32m, 其他默认 64m | Perm(俗称方法区)占整个堆内存的最大值 |
-XX:MinHeapFreeRatio=40 | 40 | GC后,如果发现空闲堆内存占到整个预估上限值的40%,则增大上限值 |
-XX:NewRatio=2 | Sparc -client: 8, x86 -server: 8, x86 -client: 12, -client: 4 (1.3), 8 (1.3.1+), x86: 12, 其他默认 2 |
新生代和年老代的堆内存占用比例, 例如2表示新生代占年老代的1/2,占整个堆内存的1/3 |
-XX:NewSize=2.125m | 5.0以后: 64 bit Vms 会增大预设值的30%, x86: 1m, x86, 5.0以后: 640k, 其他默认 2.125m | 新生代预估上限的默认值 |
-XX:ReservedCodeCacheSize=32m | Solaris 64-bit, amd64, -server x86: 48m, 1.5.0_06之前, Solaris 64-bit amd64: 1024m, 其他默认 32m | 设置代码缓存的最大值,编译时用 |
-XX:SurvivorRatio=8 | Solaris amd64: 6, Sparc in 1.3.1: 25, Solaris platforms 5.0以前: 32, 其他默认 8 | Eden与Survivor的占用比例。例如8表示,一个survivor区占用 1/8 的Eden内存,即1/10的新生代内存,为什么不是1/9? 因为我们的新生代有2个survivor,即S0和S1。所以survivor总共是占用新生代内存的 2/10,Eden与新生代的占比则为 8/10 |
-XX:TargetSurvivorRatio=50 | 50 | 实际使用的survivor空间大小占比。默认是50%,最高90% |
-XX:ThreadStackSize=512 | Sparc: 512, Solaris x86: 320 (5.0以前 256), Sparc 64 bit: 1024, Linux amd64: 1024 (5.0 以前 0), 其他默认 512. | 线程堆栈大小 |
-XX:+UseBiasedLocking | JDK 5 update 6后引入,但需要手动启用, JDK6默认启用 | 启用偏向锁 |
-XX:+UseFastAccessorMethods | 默认启用 | 优化原始类型的getter方法性能(get/set:Primitive Type) |
-XX:-UseISM | 默认启用 | 启用solaris的ISM |
-XX:+UseLargePages | JDK 5 update 5后引入,但需要手动启用, JDK6默认启用 | 启用大内存分页 |
-XX:+UseMPSS | 1.4.1 之前: 不启用, 其余版本默认启用 | 启用solaris的MPSS,不能与ISM同时使用 |
-XX:+UseStringCache | 默认开启 | 启用缓存常用的字符串。 |
-XX:AllocatePrefetchLines=1 | 1 | Number of cache lines to load after the last object allocation using prefetch instructions generated in JIT compiled code. Default values are 1 if the last allocated object was an instance and 3 if it was an array. |
-XX:AllocatePrefetchStyle=1 | 1 | Generated code style for prefetch instructions. 0 – no prefetch instructions are generate*d*, 1 – execute prefetch instructions after each allocation, 2 – use TLAB allocation watermark pointer to gate when prefetch instructions are executed. |
-XX:+UseCompressedStrings | Java 6 update 21有一选项 | 其中,对于不需要16位字符的字符串,可以使用byte[] 而非char[]。对于许多应用,这可以节省内存,但速度较慢(5%-10%) |
-XX:+OptimizeStringConcat | 在Java 6更新20中引入 | 优化字符串连接操作在可能的情况下 |
调试参数:
-XX:-CITime | 打印发费在JIT编译上的时间 | |
-XX:ErrorFile=./hs_err_pid<pid>.log | JDK6中引入 | 错误文件 |
-XX:-ExtendedDTraceProbes | JDK6中引入仅在Solaris | 启用性能的影响DTrace探测器 |
-XX:HeapDumpPath=./java_pid<pid>.hprof | 1.4.2 update 12, 5.0 update 7 | 指定HeapDump的文件路径或目录 |
-XX:-HeapDumpOnOutOfMemoryError | 1.4.2 update 12, 5.0 update 7 | 当抛出OOM时进行HeapDump |
-XX:OnError=”<cmd args>;<cmd args>” | 1.4.2 update 9 | 当发生错误时执行用户指定的命令 |
-XX:OnOutOfMemoryError=”<cmd args>; <cmd args>” |
1.4.2 update 12, 6 | 当发生OOM时执行用户指定的命令 |
-XX:-PrintClassHistogram | 1.4.2 | 当Ctrl+Break发生时打印Class实例信息,与jmap -histo相同 |
-XX:-PrintConcurrentLocks | 6 | 当Ctrl+Break发生时打印java.util.concurrent的锁信息, 与jstack -l相同 |
-XX:-PrintCommandLineFlags | 5 | 打印命令行上的标记 |
-XX:-PrintCompilation | 当方法被编译时打印信息 | |
-XX:-PrintGC | 当GC发生时打印信息 | |
-XX:-PrintGCDetails | 1.4.0 | 打印GC详细信息 |
-XX:-PrintGCTimeStamps | 1.4.0 | 打印GC用时 |
-XX:-PrintTenuringDistribution | 打印Tenuring年龄信息 | |
-XX:-TraceClassLoading | 跟踪类加载 | |
-XX:-TraceClassLoadingPreorder | 1.4.2 | 跟踪所有加载的引用类 |
-XX:-TraceClassResolution | 1.4.2 | 跟踪常量池的变化 |
-XX:-TraceClassUnloading | 跟踪类的卸载 | |
-XX:-TraceLoaderConstraints | 6 | Trace recording of loader constraints |
-XX:+PerfSaveDataToFile | 退出时保存jvmstat二进制文件 | |
-XX:ParallelGCThreads= | 设置新生代与老年代并行垃圾回收器的线程数 | |
-XX:+UseCompressedOops | Enables the use of compressed pointers (object references represented as 32 bit offsets instead of 64-bit pointers) for optimized 64-bit performance with Java heap sizes less than 32gb. | |
-XX:+AlwaysPreTouch | Pre-touch the Java heap during JVM initialization. Every page of the heap is thus demand-zeroed during initialization rather than incrementally during application execution. | |
-XX:AllocatePrefetchDistance= | Sets the prefetch distance for object allocation. Memory about to be written with the value of new objects is prefetched into cache at this distance (in bytes) beyond the address of the last allocated object. Each Java thread has its own allocation point. The default value varies with the platform on which the JVM is running. | |
-XX:InlineSmallCode= | 当编译的代码小于指定的值时,内联编译的代码 | |
-XX:MaxInlineSize=35 | 内联方法的最大字节数 | |
-XX:FreqInlineSize= | 内联频繁执行的方法的最大字节码大小 | |
-XX:LoopUnrollLimit= | Unroll loop bodies with server compiler intermediate representation node count less than this value. The limit used by the server compiler is a function of this value, not the actual value. The default value varies with the platform on which the JVM is running. | |
-XX:InitialTenuringThreshold=7 | 设置初始的对象在新生代中最大存活次数 | |
-XX:MaxTenuringThreshold= | 设置对象在新生代中最大的存活次数,最大值15,并行回收机制默认为15,CMS默认为4 |
发表评论
-
POI 实现Excel文件中点击超链接跳转到某sheet页某列某行的功能
2017-05-02 16:03 1490import java.io.FileOutputStrea ... -
解决jdk1.7不支持TSL1.2的问题(续)
2017-02-16 16:16 3874解决jdk1.7 不支持TLS1.2的问题 续 ... -
查询JDK默认支持的SSL/TSL版本
2017-02-16 15:58 8698public static void main(String ... -
查询jdk支持的加密算法和支持协议
2017-02-09 17:43 1827import java.security.*; ... -
解决jdk1.7 不支持TLS1.2的问题
2017-02-09 17:24 35406场景 java程序使用https方式调用nessus ... -
hosts的作用是什么?
2016-11-08 09:07 719很多用户都知道在Window系统中有个Hosts文件(没有 ... -
Java GC的工作原理详解
2016-03-09 15:17 952JVM学习笔记之JVM内存管理和JVM垃圾回收的概念,JVM ... -
Java性能调优工具
2016-02-23 15:39 7351、JDK命令行工具 1.1、jps命令 jps用于列出 ... -
linux 设置tomcat 自启动
2014-06-11 19:21 925想tomcat开机自启动必须还得设置/etc/rc.d/rc ... -
Redhat Enterprise Linux 6.4 安装Oracle JDK替换OpenJDK
2014-06-11 11:13 1491缺省java版本为OpenJDK 1.7: # ja ... -
IO三种方式:BIO,NIO,AIO (异步读写asynchronous IO)
2014-02-28 14:26 1341dk1.6及之前都只实现BIO 和 NIOjdk1.7开始支 ... -
Java性能的十一个用法
2013-02-22 16:34 960Java语言习惯用语 1。 ... -
Java编码易疏忽的十个问题
2013-02-20 17:30 965在Java编码中,我们容易犯一些错误,也容易疏忽一些问题,因 ... -
jdom读写XMl文件
2012-12-29 12:28 2178昨天写的一个使用jdom读写xml文件的一个例子: / ... -
weblogic 不解压war包的问题
2012-12-24 16:04 7676开发web应用时,如果通过weblogic的控制台部署war包 ... -
Oracle Weblogic 10.X、11.X、12.X各个版本对应的系统、JDK、数据库版本
2012-12-19 09:47 10062压缩包中包含Oracle weblogic 10. ... -
Java虚拟机的统计监测工具:jstat
2012-10-22 10:22 1486jstat:是JDK自带的虚拟机统计监测工具在命令行中执 ... -
spring mvc(基于注解)
2012-10-18 16:10 1350web.xml 配置: <servlet> ... -
hibernate注解大全
2012-10-18 14:16 1129/** * * @content ejb3 ... -
2012年10月编程语言排行榜
2012-10-16 13:00 1230谷歌Dart在本月首次进入了TIOBE排名前50位,也是 ...
相关推荐
本文将对JVM调优中的几个关键参数进行深入解析,包括-Xms、-Xmx、-Xmn和-Xss等,帮助开发者更好地理解这些参数的作用及如何合理设置。 #### 1. -Xms(Initial Heap Size) - **定义**:设置JVM启动时初始分配给堆...
在Java开发中,正确地配置JVM参数对于优化应用程序性能、控制内存消耗以及解决堆栈溢出等问题至关重要。本文将深入探讨JVM参数配置的相关知识点。 1. **JVM内存配置**: JVM内存分为几个主要区域,包括堆内存...
下面,我们将详细介绍标题和描述中提到的一些关键-XX参数及其功能。 1. **-XX:-AllowUserSignal** - **功能**:允许为Java进程安装信号处理器。 - **适用平台**:限于Linux和Solaris。 - **默认状态**:不启用。...
### JVM参数配置详解 #### 一、理解JVM参数配置的重要性 Java Virtual Machine (JVM) 是运行Java程序的核心环境,其性能优化很大程度上依赖于正确的JVM参数配置。合理配置JVM参数不仅可以显著提升应用程序的运行...
4. 在“Edit JRE”对话框中,输入以下参数:-Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=1024m。 5. 点击“Finish”按钮以保存配置。 通过修改myeclipse.ini文件配置jvm虚拟机的内存 myeclipse.ini文件...
以下将详细介绍如何修改JVM内存设置,以及与TOMCAT相关的具体操作。 在JVM内存设置中,有几个关键的参数: 1. **-Xms**:这是JVM启动时分配的初始堆内存大小,确保JVM启动时就有足够的内存来运行。 2. **-Xmx**:这...
以上这些参数和工具为JVM调优提供了坚实的基础,通过合理配置这些参数,可以根据具体的应用需求调整JVM的行为,从而达到优化性能的目的。在实际应用中,还需要结合具体的业务场景和技术栈特点来进行综合考虑和调整。
在进行JVM调优时,我们还可以考虑其他参数,比如设置不同GC算法(如Parallel GC、G1 GC或ZGC),以及调整并行GC的线程数(`-XX:ParallelGCThreads`)。对于大规模系统,还需要关注JVM的持久代大小(`-XX:MaxPermSize...
JVM调优涉及到堆内存设置、垃圾收集器选择以及各种性能相关的参数调整。以下是一些关于如何优化JVM的详细知识点: 1. **堆内存设置**: - `-Xmx` 和 `-Xms` 参数用于设置JVM的最大堆内存和初始堆内存。它们应设置...
JVM参数调优是提升Java应用程序性能的关键环节,尤其是在高并发、大数据量的环境中,合适的JVM配置可以显著改善系统的响应速度和稳定性。 在进行JVM调优时,我们主要关注以下几个核心方面: 1. **内存设置**:JVM...
- `-Xmx` 和 `-Xms` 参数分别用于设置JVM的最大堆内存和初始堆内存。例如,`-Xmx3550m` 和 `-Xms3550m` 表示最大和初始堆内存都为3550MB。通常建议设置这两个值相同,以避免垃圾回收后内存重新分配带来的性能影响。...
可以看jvm参数查看网址 Direct buffer memory : 直接内存太大(-XX:MaxDirectMemorySize=100m) Java heap space: 堆内存溢出 (-Xms30m -Xmx30m -XX:+PrintGCDetails) GC overhead limit exceeded: gc占用98%的...
- `-XX:+PrintFlagsFinal`:显示所有默认和已设置的JVM参数。 - `-XX:+PrintGCDetails` 和 `-XX:+PrintGCDateStamps`:打印详细的GC日志信息。 2. **JVM诊断**: - `-XX:+UnlockDiagnosticVMOptions`:解锁一些...
JVM参数设置是Java应用程序优化的关键环节,直接影响到程序的性能和稳定性。下面将详细解释提供的JVM参数及其对性能的影响。 1. **堆大小设置**: - `-Xmx` 和 `-Xms` 用于设定JVM的最大堆(`Max Heap Size`)和最小...
下面将详细介绍一些重要的JVM参数及其作用。 1. 内存设置: - `-Xms` 和 `-Xmx`:这两个参数用于设定堆内存的初始大小和最大大小。例如,`-Xms256m -Xmx1024m` 意味着堆内存的起始大小为256MB,最大可扩展到1GB。...
5. **JVM参数调整**:通过设置JVM参数可以影响GC行为,如`-Xms`和`-Xmx`控制堆内存大小,`-XX:NewRatio`设置新生代与老年代的比例,`-XX:MaxPermSize`或`-XX:MetaspaceSize`控制方法区大小,`-XX:+...
Java虚拟机(JVM)参数调优是提升Java应用程序性能的关键环节。本文主要围绕四个核心JVM参数:-Xms、-Xmx、-Xmn和-Xss进行深入讲解,并结合实际配置示例来阐述其作用和调优策略。 1. `-Xms` 和 `-Xmx`: 这两个...
这些参数通常以-XX:开头,允许开发者调整JVM内部的工作机制,以适应特定的应用场景和性能需求。以下是一些关键的JVM选项及其详细解释: 1. -XX:+<option> / -XX:-<option>: 这些选项用于启用或禁用某个特性。例如,...
在Java开发领域,JVM(Java Virtual Machine)参数调优是一项至关重要的工作,它直接影响到应用程序的性能、稳定性以及资源利用率。"JVM 参数调优-optimization-jvm.zip"这个压缩包很可能是包含了一套关于JVM调优的...