`
fly_hyp
  • 浏览: 295836 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

10 个非常重要的 HotSpot JVM 参数

 
阅读更多

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 Eclipse 
 

5) 关于性能诊断的 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.

分享到:
评论

相关推荐

    Java HotSpot VM Options

    jvm参数介绍,oracle HotSpot官方参数文档。

    java 6 jvm 参数选项大全

    研究JVM参数的朋友有帮助! 另外,考虑到本文档是初稿,如有描述错误,敬请指正。 非稳态选项使用说明  -XX:+<option>启用选项 -XX:-<option>不启用选项 -XX:<option>=<number>给选项设置一个数字类型值...

    HotSpot虚拟机主要参数表

    包含参数如下: 1. 内存管理参数 2. 及时编译参数 3. 类型加载参数 4. 多线程相关参数‘ 5. 性能参数 6. 调试参数

    HotSpot GC官网文档截图 - 20200917

    官网英文文档介绍GC的各个版本发展、GC选取、调优参数等; 当前压缩包为官网文档截图文件集合,个人觉得资源珍贵且比网上各个帖子更有参考价值,故存储自用并分享。

    JVM-Java虚拟机

    2JVM参数;3,垃圾回收原理;4,垃圾回收器的使用;5,调优实战案例 导语:平时我们所说的JVM广义上指的是一种规范。狭义上的是JDK中的JVM虚拟机。JVM的实现是由各个厂商来做的。比如现在流传最广泛的是hotspot。...

    resin-jvm 调优

    为了在动态生成JNLP时以上两个参数值能够随客户机不同而不同,可靠虑获得客户机系统信息并将这些嵌到首页index.jsp中作为连接请求的参数。 在设置了上述参数后可以通过Visualgc 来观察垃圾回收的一些参数状态,再做...

    java查看sun包源码-monitor:java生产环境内存调优(包括jvm参数类型,JVM的参数类型jinfo&jps(参数和进程查看)j

    jvm参数类型:alien: jinfo & jps(参数和进程查看):alien: jstat(类加载、垃圾收集、JIT 编译):alien: jmap+MAT(内存溢出):alien: jstack(线程、死循环、死锁):alien: JVisualVM(本地和远程可视化监控:alien: 使用 ...

    HotSpot Runtime概述

    本节介绍与HotSpot Runtime系统的主要子系统相关的关键概念。涵盖以下主题:  命令行参数处理  VM生命周期  VM类加载  字节码验证器和格式检查器  类数据共享  解释器  Java异常处理  同步  线程...

    深入理解_Java_虚拟机 JVM_高级特性与最佳实践

    前 言 致 谢 第一部分 走近Java 第...358 13.3.4 轻量级锁 / 358 13.3.5 偏向锁 / 361 13.4 本章小结 / 362 附录A Java虚拟机家族 / 363 附录B 虚拟机字节码指令表 / 366 附录C HotSpot虚拟机主要参数表 / 372

    JDK1.8所有vmXX选项及值(java)

    JDK1.8.0_112所有vm选项,用于...基于Java 6(update 21oder 21之后)版本, HotSpot JVM 提供给了两个新的参数,在JVM启动后,在命令行中可以输出所有XX参数和值。 -XX:+PrintFlagsFinal and -XX:+PrintFlagsInitial

    虚拟机

    实际问题OOM内存不足问题GC问题(阅读GC日志) 配置/优化JVM参数目标内存管理和GC 字节码和类加载器JVM参数配置和优化CS核心基金会硬件网络操作系统DS /算法虚拟机类别物理硬件的系统VM(例如:Virtual Box,VMware...

    hsdis-amd64.dll-jdk11

    我们有了这个插件后,通过JVM参数-XX:+PrintAssembly就可以加载这个HSDIS插件,然后为我们把JIT动态生成的那些本地代码还原成汇编代码,然后打印出来。这个hsdis-amd64.dll是基于openjdk11 编译。

    hsdis-amd64.dll-jdk8

    我们有了这个插件后,通过JVM参数-XX:+PrintAssembly就可以加载这个HSDIS插件,然后为我们把JIT动态生成的那些本地代码还原成汇编代码,然后打印出来。这个hsdis-amd64.dll是基于openjdk8编译。

    JVM-类加载器与双亲委托

    虚拟机为HotSpot 1.类加载器 类加载器一般只有3种(除开自己定义的)分别为: 1.Bootstrap ClassLoader:根加载器 2.Extension ClassLoader:扩展加载器 3.System ClassLoader:系统加载器 以下我们将对这3种加载器进行...

    淘宝前台系统优化实践

    主要内容 •QPS(吞吐量)三要素 •优化模板 –至少提升50% ...•优化jvm参数 –合理配置young区的大小(0%~100%) –减少GC的总时间 •保持优化的成果 –Daily load running –Daily hotspot code analysis

    Eclipse 启动运行速度调优

    提高 JAVA IDE 的性能的JVM开关 Submitted by 小天蝎 on 2005, August 18, 2:45 PM. integration 我的本本是p4 1.8G的dell c640 内存1G,eclipse 3.1 + myeclipse 4.0m2 速度还不错。 运行参数如下:...

    Java虚拟机

    第一部分从宏观的角度介绍了整个Java技术体系、Java和JVM的发展历程、模块化,以及JDK的编译,这对理解本书后面内容有重要帮助。第二部分讲解了JVM的自动内存管理,包括虚拟机内存区域的划分原理以及各种内存溢出...

    jvm_book:《深入理解Java虚拟机(第3版)》样例代码&勘误

    JetBrains的远程方案,不用纠结如何搭建IDE环境调试HotSpot源码了,如对您有用,望不吝给个Star  本工程为《深入理解Java虚拟机(第3版)》书中的样例代码,以方便读者自行测试。部分代码需要在特定的虚拟机版本、...

    java面试题

    63.3. Sun HotSpot 1.4.1 JVM堆大小的调整 44 63.4. BEA JRockit JVM的使用 45 63.4.1. Bea JRockit JVM支持4种垃圾收集器: 46 63.5. 如何从JVM中获取信息来进行调整 46 63.6. Pdm系统JVM调整 47 63.6.1. 服务器:...

    ZhiShan-zh.github.io:互联网开发工程师知识笔记

    1.2 JVM-HotSpot 虚拟机监控工具:虚拟机监控工具概述▣Attach 机制▣查看JVM进程 1.3 Tomcat Tomcat介绍 Tomcat架构 1.4 Spring Spring技术栈简介 1.4.1 Spring Framework Spring基础: Spring入门▣Spring配置▣...

Global site tag (gtag.js) - Google Analytics