1、jvm设置堆的空间不是越大越好的,太大的话,当gc开始的时候,用户线程全部停止,gc线程工作,由于空间较大,会话较长的时间。
2、32位的系统在设置jvm时,最大应该是2g多,而六十四位的系统则无限制(没做验证),
而jvm的最大堆大小受到三方面的限制:
相关操作系统的数据模型(32-bt还是64-bit)限制;
系统的可用虚拟内存限 制;
系统的可用物理内存限制。
3、分代垃圾回收描述
yong-年轻代:有三个区,一个Eden区,两个survivor区,大部分对象都是在Eden区生成。
Tenured-年老代:年老代存放的对象是从年轻代存活的对象,一般来说,年老代存放的对象都是生命周期较长的对象。
perm-持久代:用于存放静态文件,如java类、方法,持久代对垃圾回收没有显著影响,但是有些应用可能动态生成或者调用一些class,例如Hibernate等, 在这种时候需要设置一个比较大的持久代空间来存放这些运行过程中新增的类。持久代大小通过-XX:MaxPermSize=进行设置。
4、gc类型
Scavenge GC:当新对象生成时,并且在Eden区申请空间失败时,就会触发Scavenge GC,对Eden区进行gc,清除非存活的对象,并把尚且存活的对象搬到survivor区,然后整理survivor的两个区。
Full gc:对整个堆进行整理,包括yong、tenured、perm,full gc比scavenge gc要慢,
如下情况会触发full gc:
Tenured被写满
Perm域被写满
System.gc()被显示调用
上一次GC之后Heap的各域分配策略动态变化
5、垃圾回收器
总共有三种:
串行收集器
--适用情况:数据量比较小(100M左右);单处理器下并且对响应时间无要求的应用。
--缺点:只能用于小型应用
并行收集器
--适用情况:“对吞吐量有高要求”,多CPU、对应用响应时间无要求的中、大型应用。举例:后台处理、科学计算。
--缺点:垃圾收集过程中应用响应时间可能加长
并发收集器
--适用情况:“对响应时间有高要求”,多CPU、对应用响应时间有较高要求的中、大型应用。举例:Web服务器/应用服务器、电信交换、集成开发环境。
分享到:
相关推荐
JVM的垃圾回收机制是Java性能优化的关键,理解不同阶段和区域的内存分配、选择合适的垃圾收集器以及合理调整参数,可以有效提高系统性能,减少应用停顿时间,从而提升用户体验。对于大型分布式系统,深入理解JVM的GC...
该文档总结了JVM主要的七种垃圾回收器特点与区别,分别描述了他们作用于堆内存的哪些区域,采用单线程还是多线程工作方式,在运行过程中是否需要暂停其他用户工作线程。是笔者对周志明老师的《深入理解java虚拟机》...
Java虚拟机(JVM)是Java程序运行的基础,它的...开发者应根据应用的需求选择合适的JVM版本和垃圾回收策略,以实现最佳的系统性能。通过持续学习和实践,开发者可以更好地掌握JVM的奥秘,提升软件开发和维护的质量。
Java虚拟机(JVM)是Java...总的来说,理解JVM的垃圾回收机制和内存分配策略对于编写高效、稳定的Java应用至关重要。开发者需要根据具体的应用场景选择合适的垃圾回收器,并进行适当的参数调整,以实现最佳的性能表现。
自己总结的jvm中内存和垃圾回收的笔记,绘制了详细的思维导图,每个思维导图中均有详细的博文解释,方便大家学习和理解,免费分享给大家。适合jvm的爱好者和学习者
Java虚拟机(JVM)的垃圾回收(GC)机制是Java程序高效运行的关键部分,它自动管理内存,释放不再使用的对象以避免内存泄漏。本文主要探讨JVM堆内存的结构和GC的工作原理,以及如何进行性能调优。 JVM堆是Java应用...
我们通过深入探讨以下几个关键点来理解JVM垃圾回收机制的工作原理: 1. 如何确定某个对象是“垃圾”? JVM垃圾回收机制通过两种主要算法来确定对象是否成为垃圾,即“可达性分析算法”和“引用计数法”。 - 可达性...
总结来说,JVM的垃圾回收器选择和调优是一项复杂的工作,需要根据应用类型、内存大小、响应时间要求等因素综合考虑。理解各种GC的工作原理和特点,结合实际应用进行选择,是提升Java应用性能的关键步骤。在实践中,...
这篇博客将探讨JVM中的基本垃圾回收算法,帮助我们更好地理解JVM内存管理的原理。 1. 标记-清除(Mark-Sweep)算法 这是最早的垃圾回收算法之一。它分为两个阶段:标记和清除。首先,从根节点开始遍历所有可达对象...
理解JVM内存管理和垃圾回收机制对于优化Java应用的性能至关重要。开发者可以根据应用的需求和特点,通过调整JVM参数来选择合适的内存配置和垃圾回收策略。同时,使用如JVisualVM等工具进行实时监控和分析,可以帮助...
了解JVM内存模型和垃圾回收机制对于Java开发人员来说非常重要,可以帮助解决内存溢出、性能瓶颈等问题,提升程序的稳定性和效率。通过深入学习这些概念,可以更好地理解和控制Java程序在运行时的行为。
JVM内存模型与垃圾回收是...总的来说,理解JVM内存模型和垃圾回收机制对于优化Java应用性能至关重要,它涉及到内存分配策略、垃圾收集算法的选择以及内存参数的调整,这些都需要开发者具备深入的JVM知识和实践经验。
在现代软件开发领域,自动内存管理是任何成熟的平台必不可少的一部分。...了解和比较CLR与JVM在垃圾回收方面的异同,可以帮助开发者对这些技术有更深刻的理解,从而做出更明智的平台选择和性能优化决策。
理解JVM内存管理和垃圾回收机制对于优化Java应用程序性能至关重要,开发者可以通过调整JVM参数来定制适合应用需求的内存配置和垃圾回收策略。例如,设置新生代和老年代的大小、选择合适的垃圾回收器、设定最大暂停...
JVM的工作原理及其垃圾回收机制对于理解和优化Java应用程序至关重要。通过对JVM内存管理的理解,我们可以更好地控制对象的生命周期,减少不必要的内存消耗,并提高程序的性能。此外,了解不同的垃圾回收算法可以帮助...
Java虚拟机(JVM)内存模型...理解JVM内存模型和垃圾回收机制对于优化Java应用性能、避免内存泄漏和有效利用资源至关重要。开发者应根据实际需求选择合适的垃圾回收器,并关注内存分配策略,以实现高效稳定的程序运行。
在深入探讨JVM垃圾回收机制的艺术之前,我们先来理解一下“天才”的定义——一种对事业、对工作的极度热爱。JAVA垃圾回收(GC)同样展现出这种对效率和优化的热爱,它通过采用分代策略,确保针对不同存活率的场景...
总结,JVM的垃圾回收算法是一个复杂且精细的过程,涉及到多方面的技术,如根节点枚举、安全点/区域的确定、记忆集和卡表的使用,以及优化GC性能的低延迟策略。理解这些细节有助于更好地理解和优化Java应用的内存管理...
Java虚拟机(JVM)内存管理和垃圾回收是Java编程中至...总结来说,理解JVM的内存管理与垃圾回收机制对于优化Java应用性能至关重要,开发者需要根据应用特点选择合适的垃圾回收策略和参数设置,以实现高效且稳定的运行。