转载自http://www.open-open.com/bbs/view/1321413605468
1) 跟 Java 堆大小相关的 JVM 内存参数 下面三个 JVM 参数用来指定堆的初始大小和最大值以及堆栈大小
-Xms 设置 Java 堆的初始化大小
-Xmx 设置最大的 Java 堆大小
-Xss 设置Java线程堆栈大小
2) 关于打印垃圾收集器详情的 JVM 参数 -verbose:gc 记录 GC 运行以及运行时间,一般用来查看 GC 是否是应用的瓶颈 -XX:+PrintGCDetails 记录 GC 运行时的详细数据信息,包括新生成对象的占用内存大小以及耗费时间等 -XX:-PrintGCTimeStamps 打印垃圾收集的时间戳 3) 设置 Java 垃圾收集器行为的 JVM 参数 -XX:+UseParallelGC 使用并行垃圾收集 -XX:-UseConcMarkSweepGC 使用并发标志扫描收集 (Introduced in 1.4.1) -XX:-UseSerialGC 使用串行垃圾收集 (Introduced in 5.0.) 需要提醒的是,但你的应用是非常关键的、交易非常频繁应用时,应该谨慎使用 GC 参数,因为 GC 操作是耗时的,你需要在这之中找到平衡点。4) JVM 调试参数,用于远程调试 -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 关于远程调试请阅读 How to Setup Java remote debugging in Eclipse and 10 Java debugging tips in Eclipse5) 关于性能诊断的 JVM 参数 -Xprof -Xrunhprof
6) 关于类路径方面的 JVM 参数 Xbootclasspath 用来指定你需要加载,但不想通过校验的类路径。JVM 会对所有的类在加载前进行校验并为每个类通过一个int数值来应用。这个是保证 JVM 稳定的必要过程,但比较耗时,如果你希望跳过这个过程,就把你的类通过这个参数来指定。 7) 用于修改 Perm Gen 大小的 JVM 参数 下面的这三个参数主要用来解决 JVM 错误:java.lang.OutOfMemoryError:Perm Gen Space.
-XX:PermSize and MaxPermSize
-XX:NewRatio=2 Ratio of new/old generation sizes.
-XX:MaxPermSize=64m Size of the Permanent Generation.
8) 用来跟踪类加载和卸载的信息 -XX:+TraceClassLoading 和 -XX:+TraceClassUnloading 用来打印类被加载和卸载的过程信息,这个用来诊断应用的内存泄漏问题非常有用。 9) JVM switches related to logging -XX:+TraceClassLoading and -XX:+TraceClassUnloading print information class loads and unloads. Useful for investigating if you have a class leak or if old classes (like JITed Ruby methods in JRuby) are getting collected or not. You can read more about logging in Java on my post 10 Tips while logging in Java
-XX:+PrintCompilation prints out the name of each Java method Hotspot decides to JIT compile. The list will usually show a bunch of core Java class methods initially, and then turn to methods in your application. In JRuby, it eventually starts to show Ruby methods as well
10) 用于调试目的的 JVM 开关参数 -XX:HeapDumpPath=./java_pid.hprof Path to directory or file name for heap dump. -XX:-PrintConcurrentLocks Print java.util.concurrent locks in Ctrl-Break thread dump. -XX:-PrintCommandLineFlags Print flags that appeared on the command line. |
相关推荐
总结,理解并掌握JVM参数和GC机制是Java开发中的重要技能。通过合理配置JVM参数,我们可以有效控制内存使用,优化程序性能,并减少垃圾收集带来的负面影响。同时,根据应用特性选择合适的垃圾收集策略,能进一步提高...
【HotSpot GC官网文档截图 - 20200917】是一个珍贵的资源集合,包含了一系列关于Java HotSpot虚拟机(JVM)垃圾收集器(GC)的官方文档截图。这些截图详细介绍了GC的发展历程、不同版本的特性、选择GC的策略以及调优...
本节介绍的JVM参数如下: | 参数 | 说明 | |----------------|----------------------------------------------------------| | `-version` | 打印JVM版本信息 | | `-showversion` | 打印版本信息并执行程序 | | `-...
《HotSpot实战》一书深入探讨了Java Virtual Machine (JVM) 的一个重要实现——HotSpot。HotSpot是Oracle公司开发的高性能JVM,它在Java应用程序的运行时提供了一个优化的平台。本书针对HotSpot JVM的内部工作原理、...
通过调整JVM参数,如-Xms、-Xmx设置堆大小,-XX:NewRatio调整新生代和老年代比例,可以实现性能优化。 6. 字节码文件结构深度剖析: .class文件包含类的元数据和字节码指令,理解字节码的构成和执行逻辑对于理解...
在Java世界中,深入理解虚拟机(JVM)的工作机制对于优化代码性能至关重要。HotSpot VM是Oracle JDK中默认的JVM实现,它提供了一种称为HSDB(HotSpot Debugger Bridge)的工具,用于在运行时查看和分析JVM内部的数据...
HotSpot是JVM的一种实现,是Java虚拟机历史上最重要的技术之一。 JIT编译是JVM中的一个关键特性,它通过即时编译技术将Java字节码动态编译成本地代码,提高程序的执行速度。这个过程包括解释执行和JIT编译,解释...
在这个压缩包中,"JVM图解.png"可能是对JVM内部结构的可视化表示,"JVM图解"可能是一个详细的文档,解释了JVM的工作原理,而"JVM指令手册 中文版"则提供了JVM可执行的所有指令的详细信息。下面,我们将深入探讨JVM的...
二、常用JVM参数详解 1. -Xms和-Xmx:设置Java堆的初始大小和最大大小,例如-Xms256m -Xmx1024m,以保证JVM有充足的内存运行应用。 2. -XX:NewRatio:设定新生代和老年代的比例,有助于控制垃圾收集频率和内存分配...
Hotspot源码是Java开发中的重要参考资料,它揭示了Java虚拟机(JVM)的工作原理。Oracle JDK中的Hotspot JVM是Java程序运行的核心,负责字节码解释、编译优化以及垃圾回收等关键任务。Hotspot源码的分析有助于开发者...
- **JVM参数**:可以配置JVM启动时的参数,用于优化内存分配、垃圾回收等方面。 - **类文件解析**:JVM将类文件中的字节码转换成计算机能够理解的指令执行。 #### 10. 常用工具 - **VisualVM**:是一个可以监控运行...
### Sun Hotspot V1.6.0 JVM GC详解 #### 一、JVM结构与GC基础知识 ##### 1.1 JVM内存结构概述 Java虚拟机(JVM)内存主要分为以下几个部分: - **程序计数器(PC Register)**:记录当前线程所执行的字节码指令...
5. **JVM参数调整**:理解JVM启动参数的意义和作用,如-Xms、-Xmx、-XX:+UseConcMarkSweepGC等,是提升系统性能的关键。教程会指导如何根据系统资源和应用需求设置合适的参数。 6. **并发与多线程**:JVM提供了丰富...
- 如何通过JVM参数调优来优化应用性能。 - JVM与其他编程语言虚拟机的对比分析。 JVM的深入理解和应用对于开发高性能的Java应用至关重要。通过本次分享,参与者将能够更好地理解JVM的工作原理,从而在实际开发中...
3. 迁移 JVM 参数:将 JRockit 的 JVM 参数迁移到 HotSpot,例如堆大小、垃圾回收器参数等。 4. 迁移 Java 应用程序:将 Java 应用程序迁移到 HotSpot 环境,包括重新编译和重新部署应用程序。 5. 测试和优化:对 ...
包含参数如下: 1. 内存管理参数 2. 及时编译参数 3. 类型加载参数 4. 多线程相关参数‘ 5. 性能参数 6. 调试参数
JVM调优是指通过调整JVM的各种参数来优化应用程序的性能,主要包括以下方面: - **内存设置**:合理设置堆内存大小,避免频繁的垃圾回收。 - **垃圾回收器选择**:根据应用特性选择合适的垃圾回收器。 - **监控工具...