`
youyu4
  • 浏览: 440301 次
社区版块
存档分类
最新评论

JVM之其他情况

 
阅读更多

JVM之其他情况

 

JVM优化时遇到的场景

 

场景一

      一些应用分配了一些少量的非常大的长时间存活的对象。这样的场景需要需要young代的空间比old代更大。

 

 

场景二

      一些应用会经历很少的对象转移。这样的场景可能需要old代的空间远远大于存活对象的大小,由于old的占用量增长率很小。

 

 

场景三

      一些应用有小延迟需求,会使用CMS垃圾回收器,而且使用小young代空间(以致于MinorGC时间更短),以及大的old代空间。在这种配置下,对象会快速的从young代移动到old代,替代了高效老化对象。另外,CMS垃圾回收移动后的对象,碎片的可能性通过大的old代空间来解决。

 

 

场景四

      大量临时对象,这时应该用更大的年轻代,更小的老年代;大新生代延长普通GC的周期,但增加每次GC的时间,小的老年代,会导致更频繁的Full GC。

 

 

场景五

      大量持久对象,这时应该用更小的年轻代,更大的老年代;小的新生代导致GC频繁,但每次GC的时间减少了,大的老年代减少了GC的频率。

 

 

调节经验

 

  1. 本着Full GC尽量少的原则,让老年代尽量缓存重用对象,JVM  1:2
  2. 观察一段时间,看它在峰值时,老年代会占用多少内存,在不影响GC的前提下,根据实际情况加大新生代,比如加大到 1:1,但给老年代至少预留三分之一的增长空间。

 

 

参考:

http://blog.csdn.net/zhoutao198712/article/details/7842659

分享到:
评论

相关推荐

    jvm-mon基于控制台的JVM监视

    虽然`jvm-mon`提供了基本的JVM监控功能,但更复杂的性能问题可能需要结合其他专业工具,如JProfiler、VisualVM、YourKit等,它们提供更深入的分析和故障排查能力,如方法调用时间线、内存分配跟踪、线程栈深度等。...

    JVM中文指令手册.pdf

    2. push指令:对于int类型的其他数值,除了-1到5这些特殊情况外,可以使用带有参数的push指令(如bipush),将一个1字节(byte)的整数推送到操作数栈。push指令允许把更大范围的整数压入栈中,参数是具体的数值。 ...

    JVM必知必会

    - **内存分析**:通过分析JVM内存使用情况,可以优化程序性能,避免如Full GC频繁发生等性能问题。 #### 8. 垃圾收集与收集器 - **垃圾收集**:指JVM回收那些不再被使用的对象占用的内存空间。 - **垃圾收集器**:...

    Jvm堆栈dump文件分析

    HeadAnalyzer能够帮助开发者和系统管理员深入理解JVM内部的工作机制,识别内存泄漏、线程阻塞以及其他性能问题。 HeadAnalyzer的功能主要包括: 1. **内存分析**:检查堆内存的分配情况,找出内存泄漏的可能源头。...

    jvm内存监控工具使用

    jstat 是一个用于监视 JVM 内存使用情况的强大工具,它可以提供有关堆内存、非堆内存、类加载和垃圾收集器活动的详细信息。通过 jstat,你可以监控 JVM 各个区域的内存使用率,包括年轻代、老年代和永久代,这对于...

    Tomcat JVM的参数调优

    通常建议将最大内存设置为物理内存的80%,以确保有足够的空间给其他系统进程。 垃圾回收的效率和频率与堆大小密切相关。更大的堆可能导致更慢但更少的GC,而较小的堆则可能导致更快但更频繁的GC。理想的设置是在不...

    JVM内存管理白皮书

    JVM提供的内存管理机制是自动的,这与其他一些编程语言需要开发者显式地进行内存管理形成鲜明对比。自动内存管理的优势在于它减轻了开发者的负担,避免了因内存管理不当而产生的诸如内存泄漏等问题。 2. 垃圾收集的...

    jvm.dll文件

    在这种情况下,你可以尝试重新安装JRE或JDK,以获取一个新的、完整的`jvm.dll` 文件。 再者,环境变量配置不正确也可能导致问题。在Windows系统中,`JAVA_HOME` 和 `PATH` 环境变量必须设置正确,以便系统能够找到...

    JVM-SANDBOX基于JVM的实时无侵入AOP框架容器

    这个框架的核心在于其对Java类加载机制的深入理解和利用,使得可以在不修改原始代码的情况下,对运行中的程序进行动态拦截和处理。 AOP(Aspect-Oriented Programming)是一种编程范式,它将关注点分离,使得系统中...

    JVM.zip_java jvm_jvm

    在没有具体内容的情况下,我们无法提供更多细节,但通常这类文件会提供版权信息、作者声明、使用许可或其他相关说明。 在实际应用中,了解JVM的参数对于性能调优至关重要。例如,JVM的堆内存设置(如-Xms和-Xmx)、...

    jvisualvm来JVM监控

    同时,jvisualvm不支持Java 9及更高版本,因此在这些版本的JVM上,需要寻找其他替代方案。 总结,jvisualvm作为一款免费且功能齐全的JVM监控工具,为开发者提供了便利的性能分析环境。熟练掌握其使用,能有效提升...

    JVM TI监控JAVA执行过程

    5. 虚拟机事件:例如,当JVM启动、停止、出错或者出现其他系统事件时,工具可以通过JVM TI接收通知。 三、JVM TI的使用 要使用JVM TI,开发者通常需要编写一个本地代理(Agent)程序,这个程序作为Java虚拟机的...

    jvm内存状况查看

    Java虚拟机(JVM)内存管理是Java应用程序性能优化的关键环节。...通过输出GC日志,结合各种参数和工具,开发者能够深入理解内存使用情况,进而优化程序性能,防止因内存问题导致的性能瓶颈和系统稳定性问题。

    设置Eclipse的JVM参数

    其中,设置合适的JVM(Java虚拟机)参数是优化Eclipse运行性能的重要手段之一。本文将详细介绍如何设置Eclipse的JVM参数,并解释这些参数的意义及其对Eclipse性能的影响。 #### 二、Eclipse与JVM的关系 Eclipse...

    jvm内存分析工具mat

    总的来说,MAT是Java开发人员必备的工具之一,它能有效地帮助我们解决JVM内存问题,提高应用的稳定性和效率。通过熟练掌握MAT的使用,开发者可以更好地管理和优化Java应用的内存,从而提升整体的系统性能。

    R大(国内JVM权威)资料合集

    - **重要性**: JVM不仅限于Java,还能支持其他编译为目标字节码的语言,如Scala、Groovy等。它提供了一种跨平台的执行环境,使得Java程序无需重新编译就能在任何安装了JVM的操作系统上运行。 #### 2. 编程语言与...

    vmmap 观察jvm内存 监控jvm jvm线程

    `vmmap`工具是Mac OS X系统中一个强大的内存分析工具,它可以用来深入观察JVM内存的分配和使用情况。本文将详细讲解如何利用`vmmap`监控JVM,理解其核心概念,以及分析JVM线程。 首先,`vmmap`是Apple提供的命令行...

    JVM调优和故障排除手册

    7. OutOfMemoryError(内存溢出错误)的分析:内存溢出错误是JVM运行时常遇到的问题,文档中对此进行了分类,包括Java堆空间溢出、交换空间不足、无法创建新原生线程等情况,并提供了相应的分析方法。 8. 类加载和...

    监测JVM各项性能指标

    JVM自带了一些工具,可以帮助我们监控内存使用、网络状况以及其它关键性能数据。下面将详细讨论这些知识点。 1. **JVM监控工具** - **jconsole**:Java可视化监控工具,可以显示JVM的内存、线程、类装载、Garbage ...

Global site tag (gtag.js) - Google Analytics