Java 6 JVM参数选项大全(中文版).doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:14 大小:124KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

Java 6 JVM参数选项大全(中文版).doc

Java6JVM参数选项大全(中文版).doc

预览

免费试读已结束,剩余 4 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Java6JVM参数选项大全(中文版)选项默认值与限制描述-XX:-AllowUserSignalHandlers限于Linux和Solaris,默认不启用允许为java进程安装信号处理器。Java信号处理相关知识,详见HYPERLINK"http://kenwublog.com/java-asynchronous-notify-based-on-signal"http://kenwublog.com/java-asynchronous-notify-based-on-signal-XX:-DisableExplicitGC默认不启用禁止在运行期显式地调用System.gc()。开启该选项后,GC的触发时机将由GarbageCollector全权掌控。注意:你熟悉的代码里没调用System.gc(),不代表你依赖的框架工具没在使用。例如RMI就在多数用户毫不知情的情况下,显示地调用GC来防止自身OOM。请仔细权衡禁用带来的影响。-XX:-RelaxAccessControlCheck默认不启用在Class校验器中,放松对访问控制的检查。作用与reflection里的setAccessible类似。-XX:-UseConcMarkSweepGC默认不启用启用CMS低停顿垃圾收集器。资料详见:HYPERLINK"http://kenwublog.com/docs/CMS_GC.pdf"http://kenwublog.com/docs/CMS_GC.pdf-XX:-UseParallelGC-server时启用其他情况下,默认不启用策略为新生代使用并行清除,年老代使用单线程Mark-Sweep-Compact的垃圾收集器。-XX:-UseParallelOldGC默认不启用策略为老年代和新生代都使用并行清除的垃圾收集器。-XX:-UseSerialGC-client时启用其他情况下,默认不启用使用串行垃圾收集器。-XX:+UseSplitVerifierjava5默认不启用java6默认启用使用新的Class类型校验器。新Class类型校验器有什么特点?新Class类型校验器,将老的校验步骤拆分成了两步:1,类型推断。2,类型校验。新类型校验器通过在javac编译时嵌入类型信息到bytecode中,省略了类型推断这一步,从而提升了classloader的性能。Classload顺序(供参考)load->verify->prepare->resove->init关联选项:-XX:+FailOverToOldVerifier-XX:+FailOverToOldVerifierJava6新引入选项,默认启用如果新的Class校验器检查失败,则使用老的校验器。为什么会失败?因为JDK6最高向下兼容到JDK1.2,而JDK1.2的classinfo与JDK6的info存在较大的差异,所以新校验器可能会出现校验失败的情况。关联选项:-XX:+UseSplitVerifier-XX:+HandlePromotionFailurejava5以前是默认不启用,java6默认启用关闭新生代收集担保。什么是新生代收集担保?在一次理想化的minorgc中,Eden和FirstSurvivor中的活跃对象会被复制到SecondSurvivor。然而,SecondSurvivor不一定能容纳下所有从E和F区copy过来的活跃对象。为了确保minorgc能够顺利完成,GC需要在年老代中额外保留一块足以容纳所有活跃对象的内存空间。这个预留操作,就被称之为新生代收集担保(NewGenerationGuarantee)。如果预留操作无法完成时,仍会触发majorgc(fullgc)。为什么要关闭新生代收集担保?因为在年老代中预留的空间大小,是无法精确计算的。为了确保极端情况的发生,GC参考了最坏情况下的新生代内存占用,即Eden+FirstSurvivor。这种策略无疑是在浪费年老代内存,从时序角度看,还会提前触发FullGC。为了避免如上情况的发生,JVM允许开发者手动关闭新生代收集担保。在开启本选项后,minorgc将不再提供新生代收集担保,而是在出现survior或年老代不够用时,抛出promotionfailed异常。-XX:+UseSpinningjava1.4.2和1.5需要手动启用,java6默认已启用启用多线程自旋锁优化。自旋锁优化原理大家知道,Java的多线程安全是基于Lock机制实现的,而Lock的性能往往不如人意。原因是,monitorenter与monitorexit这两个控制多线程同步的bytecode原语,是JVM依赖操作系统互斥(mutex)来实现的。互斥是一种会导