问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

弱弱的问一句 jvm full gc到底是啥意思

发布网友 发布时间:2022-04-30 15:23

我来回答

2个回答

热心网友 时间:2022-05-16 16:59

JVM 内置的通用垃圾回收原则,堆内存划分为 Eden、Survivor 和 Tenured/Old 空间。GC一共分三种:MinorGC,Major GC v和Full GC。Full GC是清理整个堆空间—包括年轻代和永久代。有时候系统会频繁的FullGC,这时候需要去服务器查一下原因。

当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类  ,通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用。

扩展资料

触发Full GC执行的情况有如下四种。旧生代空间不足

1.旧生代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象,当执行Full GC后空间仍然不足,则抛出如下错误:

java.lang.OutOfMemoryError: Java heap space

为避免以上两种状况引起的FullGC,调优时应尽量做到让对象在Minor GC阶段被回收、让对象在新生代多存活一段时间及不要创建过大的对象及数组。

2. Permanet Generation空间满

PermanetGeneration中存放的为一些class的信息等,当系统中要加载的类、反射的类和调用的方法较多时,Permanet Generation可能会被占满,在未配置为采用CMS GC的情况下会执行Full GC。如果经过Full GC仍然回收不了,那么JVM会抛出如下错误信息:

java.lang.OutOfMemoryError: PermGen space

为避免Perm Gen占满造成Full GC现象,可采用的方法为增大Perm Gen空间或转为使用CMS GC。

3. CMS GC时出现promotion failed和concurrent mode failure

对于采用CMS进行旧生代GC的程序而言,尤其要注意GC日志中是否有promotion failed和concurrent mode failure两种状况,当这两种状况出现时可能会触发Full GC。

promotionfailed是在进行Minor GC时,survivor space放不下、对象只能放入旧生代,而此时旧生代也放不下造成的;concurrent mode failure是在执行CMS GC的过程中同时有对象要放入旧生代,而此时旧生代空间不足造成的。

应对措施为:增大survivorspace、旧生代空间或调低触发并发GC的比率,但在JDK 5.0+、6.0+的版本中有可能会由于JDK的bug29导致CMS在remark完毕后很久才触发sweeping动作。对于这种状况,可通过设置-XX:CMSMaxAbortablePrecleanTime=5(单位为ms)来避免。

4. 统计得到的Minor GC晋升到旧生代的平均大小大于旧生代的剩余空间

这是一个较为复杂的触发情况,Hotspot为了避免由于新生代对象晋升到旧生代导致旧生代空间不足的现象,在进行Minor GC时,做了一个判断,如果之前统计所得到的Minor GC晋升到旧生代的平均大小大于旧生代的剩余空间,那么就直接触发Full GC。

例如程序第一次触发MinorGC后,有6MB的对象晋升到旧生代,那么当下一次Minor GC发生时,首先检查旧生代的剩余空间是否大于6MB,如果小于6MB,则执行Full GC。

当新生代采用PSGC时,方式稍有不同,PS GC是在Minor GC后也会检查,例如上面的例子中第一次Minor GC后,PS GC会检查此时旧生代的剩余空间是否大于6MB,如小于,则触发对旧生代的回收。

除了以上4种状况外,对于使用RMI来进行RPC或管理的Sun JDK应用而言,默认情况下会一小时执行一次Full GC。可通过在启动时通过- java-Dsun.rmi.dgc.client.gcInterval=3600000来设置Full GC执行的间隔时间或通过-XX:+ DisableExplicitGC来禁止RMI调用System.gc。

参考资料来源:百度百科-JAVA

热心网友 时间:2022-05-16 16:59

首先,楼主需明白JVM 内置的通用垃圾回收原则,堆内存划分为 Eden、Survivor 和 Tenured/Old 空间,推荐去看《深入理解Java虚拟机》。GC一共分三种:MinorGC,
Major GC v和Full GC

Minor GC
从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC。这一定义既清晰又易于理解。但是,当发生Minor GC事件的时候,有一些有趣的地方需要注意到:
当 JVM 无法为一个新的对象分配空间时会触发 Minor GC,比如当 Eden 区满了。所以分配率越高,越频繁执行 Minor GC。
内存池被填满的时候,其中的内容全部会被复制,指针会从0开始跟踪空闲内存。Eden 和 Survivor 区进行了标记和复制操作,取代了经典的标记、扫描、压缩、清理操作。所以 Eden 和 Survivor 区不存在内存碎片。写指针总是停留在所使用内存池的顶部。
执行 Minor GC 操作时,不会影响到永久代。从永久代到年轻代的引用被当成 GC roots,从年轻代到永久代的引用在标记阶段被直接忽略掉。
质疑常规的认知,所有的 Minor GC 都会触发“全世界的暂停(stop-the-world)”,停止应用程序的线程。对于大部分应用程序,停顿导致的延迟都是可以忽略不计的。其中的*就 是,大部分 Eden 区中的对象都能被认为是垃圾,永远也不会被复制到 Survivor 区或者老年代空间。如果正好相反,Eden 区大部分新生对象不符合 GC 条件,Minor GC 执行时暂停的时间将会长很多。
所以 Minor GC 的情况就相当清楚了——每次 Minor GC 会清理年轻代的内存。

Major GC vs Full GC
大家应该注意到,目前,这些术语无论是在 JVM 规范还是在垃圾收集研究论文中都没有正式的定义。但是我们一看就知道这些在我们已经知道的基础之上做出的定义是正确的,Minor GC 清理年轻带内存应该被设计得简单:
Major GC 是清理永久代。
Full GC 是清理整个堆空间—包括年轻代和永久代。
很不幸,实际上它还有点复杂且令人困惑。首先,许多 Major GC 是由 Minor GC 触发的,所以很多情况下将这两种 GC 分离是不太可能的。另一方面,许多现代垃圾收集机制会清理部分永久代空间,所以使用“cleaning”一词只是部分正确。

有时候系统会频繁的FullGC,这时候需要去服务器查一下原因,当然这又是另一个问题,楼主可以自己去了解下。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
油烟机价格多少钱一台 为什么真正懂房子的人只买二手房 来看看行家怎么做 二手房怎样看风水好不好?怎样看二手房子风水好坏?买二手房子怎么看风水... awm由哪几个英语组词 【急】英语组词成句5道,求英语高手帮解 我想去苏州打工,我对苏州一点都不了解,请问我该不该去 在苏州一家餐厅打工,每晚都超过规定时间下班,不想继续干了,离职能拿... 上海哪里可以摆地摊卖盒饭 高星级酒店做盒饭说明什么 谁能帮我分析一下:一份六块钱的盒饭有多少利润? 请问办食品卫生许可证最快要多长时间办好啊?谢谢了 食品许可证办理需要几天 十一去哪旅游比较好玩呢??? 食品生产许可证需要多久能办下来呢? 湖南人国庆节去甘肃旅游有什么要求 十一甘肃张掖去那玩? 食品生产许可证办理需要多久 准备从甘肃白银十一去甘肃永靖刘家峡旅游,两天时间如何安排行程? 11月份去甘肃旅游需要准备什么东西 去甘肃旅游,值得去的景点有哪些? 坐飞机可以背一个双肩包,再带一个小行李箱上飞机吗?是不是不能在里面放液态物品? 20寸行李箱和双肩包可以一起带上飞机吗?还是一个人只能带一件东西_百度问一问 出门旅行,双肩包和拉杆箱哪个更好? 我要从哈尔滨去上海 做飞机 我有个拉杆箱 在背个双肩包 双肩包算托运的行李吗 坐高铁或动车,拿两个24寸拉杆箱和一个双肩包可以吗? 很想知道,阿联酋航空从广州出发,随身行李一20寸的拉杆箱加一双肩包,行不,谢谢。 请问早餐吃煎鸡蛋有营养吗?煎鸡蛋,里面还会有蛋白质吗? 第一次坐飞机,想问一下行李的问题 行李托运规定,两件以上的包件不 怎么把双肩包套在拉杆箱上? 背包本身无法套在拉杆箱上 如何在拉杆箱上固定背包 红米note8卸载的软件怎么找回来 地球的清洁工有哪些动物? 什么动物可以清洁垃圾? 红米手机自带便签软件删除怎么恢复 Full GC什么意思 什么动物会清理垃圾? jvm什么时候会触发full gc 红米4a手机刚删除的软件能够恢复吗? 哪些动物可以清除垃圾 gc 怎么区分是否full gc 如何用vm 和linux 在一台电脑上建立 虚拟机网络? 红米手机卸载的软件怎么恢复? FULL GC 什么意思 有什么动物能清除垃圾? 什么动物清理垃圾? 如何 排查 full gc 原因 在VMware workstation里Red Hat Linux怎样上网 jvm什么情况下 发生fullgc 我把红米里自带的软件删除了怎么办 哪些动物可以清理地上的垃圾
  • 焦点

最新推荐

猜你喜欢

热门推荐