`

JVM参数与性能优化

阅读更多

JVM参数与性能优化

 

 

在很多地方都会用到 JVM 参数,比如你运行 ant check-style,跑挂了,抛了个 OutOfMemory 错误。这时你上网搜索,他们会告诉你,应该修改 ANT_OPTS 环境变量,加上“-Xmx512m”。

 

再比如 JBoss tomcat 都有启动脚本(startup.bat),里面也用到 JVM 参数。还有 Eclipse eclipse.ini 中也可以加入 JVM 参数。灵活使用这些 JVM 参数可以使我们的 Java 程序获得更好的性能。

 

 

=== 常用参数 ===

 

-server

一定要作为第一个参数,会使JVM启动速度变慢,但会显著提升JVM性能

 

-Xms64m

设置初始 Heap 大小,使用的最小内存

 

-Xmx1024m

设置最大 Heap 大小

 

-Xss256k

设置每个线程的 Stack 大小

 

-XX:MaxPermSize=128M

设置最大永久区大小,永久保存区用于存放Class信息和元信息

 

 

=== GC(垃圾回收)参数 ===

 

Sun HotSpot JVM 通常使用的 GC 算法是分代回收。即把对象按生命周期不同分为年轻代和年老代。新的对象会先生成在Young Area,在几次 GC 以后,如果没有收集到,就会逐渐升级到Tenured Area

 

Sun JVM 默认的回收器称为 serial collector ,即串行回收,我们也可以使用多线程并发回收来提高效率。需要注意的是,在单核的机器上,使用默认的回收器可能会更好。

 

-XX:+UseParNewGC

为年轻代对象使用并发回收,会缩短年轻代对象的回收时间

 

-XX:+UseConcMarkSweepGC

为年老代使用并发回收

 

-XX:+UseParallelGC

该收集器和 UseConcMarkSweepGC 是互相排斥的,为新生代使用并行清除,年老代使用单线程Mark-Sweep-Compact的垃圾收集器。

 

 

=== 其他参数 ===

 

-XX:CompileThreshold=100

该值表示编译之前必须调用方法的次数。HotSpot JVM 使用 JIT(Just-In-Time Compilation, http://en.wikipedia.org/wiki/Just-in-time_compilation) 技术将字节码编译成本地码,默认值为1000,即一个方法被调用了 1000 次之后 JVM 会编译它。降低这个值可能会使程序的性能得到提升,但会使启动速度变慢。

 

-XX:+DoEscapeAnalysis

启用逃逸分析,这个选项只能用于 Java 1.6。原理参见:http://kenwublog.com/jvm-optimization-escape-analysis

 

 

=== JVM参数的设置 ===

 

可以直接在java命令后面附加,比如:java -Xmx512m -XX:+UseParNewGC Test

 

还可以在环境变量中设置,如 JAVA_OPTS ANT_OPTS 。还可以在eclipse.ini中设置,需要写在 -vmargs 一行的后面

 

 

=== 参考资料 ===

 

 * Java 6 JVM参数选项大全(中文版):http://kenwublog.com/docs/java6-jvm-options-chinese-edition.htm

 * Garbage Collection - Frequently Asked Questionshttp://java.sun.com/docs/hotspot/gc1.4.2/faq.html

 * 调整 JVM 开关以获得最佳性能:http://gceclub.sun.com.cn/NetBeans/tutorials/tuning/index.html

 

分享到:
评论

相关推荐

    jvm参数与系统性能的优化

    JVM 参数与系统性能的优化 在 Java 虚拟机(JVM)中,参数设置对系统性能的影响是至关重要的。通过设置合适的 JVM 参数,可以提高系统性能,减少垃圾回收的频率和时间,提高应用程序的执行效率。 第一点:设置堆栈...

    实战Java虚拟机——JVM故障诊断与性能优化 pdf

    《实战Java虚拟机——JVM故障诊断与性能优化》内容简介:随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java也俨然成为一个充满活力的生态圈。本书将通过200余示例详细介绍Java虚拟机中的...

    实战JAVA虚拟机 JVM故障诊断与性能优化

    《实战JAVA虚拟机—JVM故障诊断与性能优化》是一本深入探讨Java虚拟机(JVM)技术的书籍,旨在帮助开发者和系统管理员诊断并优化JVM相关的性能问题。本书内容丰富,涵盖了大量的实践案例,使得即便是初学者也能理解...

    实战Java虚拟机——JVM故障诊断与性能优化.pdf

    5. **JVM参数设置**:了解并合理设置JVM参数对于性能优化至关重要。书里可能会详细解析-Xms、-Xmx、-XX:+UseConcMarkSweepGC等关键参数的作用,以及如何根据应用特性调整参数。 6. **线程与并发**:JVM中的线程管理...

    JVM系列之性能调优参考手册(实践篇).pdf

    性能调优不仅需要了解JVM参数,还需要关注参数的具体含义和应用。例如,“-Xms”和“-Xmx”分别用于设置JVM的初始堆内存和最大堆内存,“-Xss”用于设置线程堆栈大小,“-Xmn”用于设置年轻代内存大小。而“-XX”...

    实战Java虚拟机 JVM故障诊断与性能优化 葛一鸣

    4. **性能优化**:JVM性能优化主要包括内存优化、线程优化、代码优化和JVM参数调整。例如,合理设置堆大小、新生代与老年代的比例,选择合适的GC策略,避免死锁和竞态条件,以及利用JDK工具(如JVisualVM、JProfiler...

    实战JAVA虚拟机 JVM故障诊断与性能优化带源码

    《实战JAVA虚拟机 JVM故障诊断与性能优化》是一本深度探讨Java虚拟机(JVM)的书籍,旨在帮助开发者解决在实际工作中遇到的JVM相关问题,提升系统的性能。这本书提供了丰富的源码实例,让读者能够深入理解JVM的工作...

    实战JAVA虚拟机 JVM故障诊断与性能优化.pdf

    《实战JAVA虚拟机 JVM故障诊断与性能优化》是一本深度剖析Java虚拟机(JVM)的实战型书籍,旨在帮助读者理解JVM的工作原理,掌握JVM的故障诊断技巧,以及进行有效的性能优化。在Java开发中,JVM扮演着至关重要的角色...

    实战JAVA虚拟机++JVM故障诊断与性能优化.pdf

    《实战Java虚拟机——JVM故障诊断与性能优化》将通过200余示例详细介绍Java虚拟机中的各种参数配置、故障排查、性能监控以及性能优化。 《实战Java虚拟机——JVM故障诊断与性能优化》共11章。第1~3章介绍了Java...

    实战JAVA虚拟机 JVM故障诊断与性能优化.rar

    《实战JAVA虚拟机 JVM故障诊断与性能优化》是一本深度探讨Java虚拟机(JVM)的专著,旨在帮助开发者解决实际工作中遇到的JVM相关问题,提升系统的性能表现。通过对JVM内部机制的深入理解,我们可以更有效地调试、...

    实战JAVA虚拟机 (JVM故障诊断与性能优化)【含源码】

    《实战JAVA虚拟机 (JVM故障诊断与性能优化)》是一本深度剖析JVM的实践指南,旨在帮助读者掌握JVM的内部工作机制,提升故障排查和性能调优的能力。本书可与周志明的《深入理解JAVA虚拟机》相媲美,提供了丰富的源码...

    面试必问之jvm与性能优化.docx

    ### jvm性能优化相关知识点详解 #### 一、JVM加载Class文件的原理机制 **1.1 类加载概述** Java虚拟机(JVM)在执行Java程序时,并不会一次性加载所有的类,而是采取按需加载的方式。这种方式可以有效减少内存消耗...

    Java虚拟机-jvm故障诊断与性能优化-源码

    在《实战Java虚拟机——JVM故障诊断与性能优化》一书中,作者深入探讨了如何对JVM进行故障排查和性能调优,通过源码分析来帮助读者理解其内部工作原理。下面我们将根据书中的主题,详细阐述相关的知识点。 1. **JVM...

    jvm详细介绍以及性能优化方法

    本篇文章将详细探讨JVM的工作原理,并提供一些有效的性能优化策略。 首先,JVM的内存结构分为堆、栈、方法区、程序计数器、本地方法栈等几个关键区域。堆是所有对象实例的存储区域,而栈则用于存储方法调用时的局部...

    JVM优化3(Tomcat参数调优,JVM参数调优,jvm字节码,代码优化).pdf

    总结而言,该文档覆盖了Tomcat服务器优化、JVM参数调整、字节码级别的优化以及代码层面的优化等多个方面,旨在通过一系列配置和操作,提升Java应用以及Web服务器的性能和效率。同时,也提到了性能测试的重要性和在...

    实战Java虚拟机——JVM故障诊断与性能优化

    6. **JVM参数设置**:熟练掌握JVM启动参数的配置是性能优化的基础。书中会介绍如-Xms、-Xmx、-XX:MaxPermSize等关键参数的作用及最佳实践。 7. **JIT编译器**:JVM的Just-In-Time(JIT)编译器将热点代码编译为机器...

    深入JVM内核—原理、诊断与优化视频教程-3.常用JVM配置参数

    深入理解JVM的内核原理、诊断技巧以及优化方法对于提升应用性能至关重要。本教程——“深入JVM内核—原理、诊断与优化视频教程”,将重点讲解这些关键点,帮助开发者提升技术水平,更好地解决实际问题。 首先,我们...

    JVM性能优化(PPT)

    熟悉常用的JVM参数,如-Xms、-Xmx设定堆内存,-XX:NewRatio调整新生代与老年代比例,-XX:SurvivorRatio控制Eden和Survivor空间比例,-XX:+UseConcMarkSweepGC选择GC策略等,是进行JVM调优的基本功。 6. **性能监控...

Global site tag (gtag.js) - Google Analytics