草庐IT

gc_enable

全部标签

一次JVM GC长暂停的排查过程

作者:京东科技徐传乐背景在高并发下,Java程序的GC问题属于很典型的一类问题,带来的影响往往会被进一步放大。不管是「GC频率过快」还是「GC耗时太长」,由于GC期间都存在StopTheWorld问题,因此很容易导致服务超时,引发性能问题。事情最初是线上某应用垃圾收集出现FullGC异常的现象,应用中个别实例FullGC时间特别长,持续时间约为15~30秒,平均每2周左右触发一次;JVM参数配置“-Xms2048M–Xmx2048M–Xmn1024M–XX:MaxPermSize=512M”排查过程Ø分析GC日志GC日志它记录了每一次的GC的执行时间和执行结果,通过分析GC日志可以调优堆设置和

一次JVM GC长暂停的排查过程

作者:京东科技徐传乐背景在高并发下,Java程序的GC问题属于很典型的一类问题,带来的影响往往会被进一步放大。不管是「GC频率过快」还是「GC耗时太长」,由于GC期间都存在StopTheWorld问题,因此很容易导致服务超时,引发性能问题。事情最初是线上某应用垃圾收集出现FullGC异常的现象,应用中个别实例FullGC时间特别长,持续时间约为15~30秒,平均每2周左右触发一次;JVM参数配置“-Xms2048M–Xmx2048M–Xmn1024M–XX:MaxPermSize=512M”排查过程Ø分析GC日志GC日志它记录了每一次的GC的执行时间和执行结果,通过分析GC日志可以调优堆设置和

一次JVM GC长暂停的排查过程

作者:京东科技徐传乐背景在高并发下,Java程序的GC问题属于很典型的一类问题,带来的影响往往会被进一步放大。不管是「GC频率过快」还是「GC耗时太长」,由于GC期间都存在StopTheWorld问题,因此很容易导致服务超时,引发性能问题。事情最初是线上某应用垃圾收集出现FullGC异常的现象,应用中个别实例FullGC时间特别长,持续时间约为15~30秒,平均每2周左右触发一次;JVM参数配置“-Xms2048M–Xmx2048M–Xmn1024M–XX:MaxPermSize=512M”排查过程Ø分析GC日志GC日志它记录了每一次的GC的执行时间和执行结果,通过分析GC日志可以调优堆设置和

C++智能指针的enable_shared_from_this和shared_from_this机制

目录前言问题代码代码清单1代码清单2shared_ptr原理分析问题修改代码清单1修改代码清单2修改enable_shared_from_this和shared_from_this总结前言之前学习muduo网络库的时候,看到作者陈硕用到了enable_shared_from_this和shared_from_this,一直对此概念是一个模糊的认识,隐约记着这个机制是在计数器智能指针传递时才会用到的,今天对该机制进行梳理总结一下吧。如果不熟悉C++带引用计数的智能指针shared_ptr和weak_ptr,可参考这篇文章:?深入掌握智能指针这篇文章主要介绍C++11提供的智能指针相关的enabl

C++智能指针的enable_shared_from_this和shared_from_this机制

目录前言问题代码代码清单1代码清单2shared_ptr原理分析问题修改代码清单1修改代码清单2修改enable_shared_from_this和shared_from_this总结前言之前学习muduo网络库的时候,看到作者陈硕用到了enable_shared_from_this和shared_from_this,一直对此概念是一个模糊的认识,隐约记着这个机制是在计数器智能指针传递时才会用到的,今天对该机制进行梳理总结一下吧。如果不熟悉C++带引用计数的智能指针shared_ptr和weak_ptr,可参考这篇文章:?深入掌握智能指针这篇文章主要介绍C++11提供的智能指针相关的enabl

聊聊GC是如何快速枚举根节点的

本文已收录至Github,推荐阅读?Java随想录微信公众号:Java随想录CSDN:码农BookSea世界上最快乐的事,莫过于为理想而奋斗。——苏格拉底目录什么是根节点枚举根节点枚举存在的问题如何解决根节点枚举的问题安全点安全区域HotSpot使用的是可达性分析算法,该算法需要进行根节点枚举,查找根节点枚举的过程要做到高效并非一件容易的事情,现在Java应用越做越庞大,光是方法区的大小就常有数百上千兆,里面的类、常量等更是恒河沙数(一种修辞手法),若要逐个检查以这里为起源的引用肯定得消耗不少时间。大家可以思考下,如果你是JVM的开发者,你会怎么去做?看完这一章节,你或许会跟我一样,感叹JVM

聊聊GC是如何快速枚举根节点的

本文已收录至Github,推荐阅读?Java随想录微信公众号:Java随想录CSDN:码农BookSea世界上最快乐的事,莫过于为理想而奋斗。——苏格拉底目录什么是根节点枚举根节点枚举存在的问题如何解决根节点枚举的问题安全点安全区域HotSpot使用的是可达性分析算法,该算法需要进行根节点枚举,查找根节点枚举的过程要做到高效并非一件容易的事情,现在Java应用越做越庞大,光是方法区的大小就常有数百上千兆,里面的类、常量等更是恒河沙数(一种修辞手法),若要逐个检查以这里为起源的引用肯定得消耗不少时间。大家可以思考下,如果你是JVM的开发者,你会怎么去做?看完这一章节,你或许会跟我一样,感叹JVM

java.lang.OutOfMemoryError: GC overhead limit exceeded问题分析及解决

一、错误重现2022-12-2910:12:07.210ERROR73511---[nio-8001-exec-6]o.a.c.c.C.[.[.[/].[dispatcherServlet]:Servlet.service()forservlet[dispatcherServlet]incontextwithpath[]threwexception[Handlerdispatchfailed;nestedexceptionisjava.lang.OutOfMemoryError:GCoverheadlimitexceeded]withrootcausejava.lang.OutOfMemory

java.lang.OutOfMemoryError: GC overhead limit exceeded问题分析及解决

一、错误重现2022-12-2910:12:07.210ERROR73511---[nio-8001-exec-6]o.a.c.c.C.[.[.[/].[dispatcherServlet]:Servlet.service()forservlet[dispatcherServlet]incontextwithpath[]threwexception[Handlerdispatchfailed;nestedexceptionisjava.lang.OutOfMemoryError:GCoverheadlimitexceeded]withrootcausejava.lang.OutOfMemory

JVM(Java虚拟机)详解(JVM 内存模型、堆、GC、直接内存、性能调优)

JVM(Java虚拟机)JVM内存模型结构图jdk1.8结构图(极简)jdk1.8结构图(简单)JVM(Java虚拟机):是一个抽象的计算模型。如同一台真实的机器,它有自己的指令集和执行引擎,可以在运行时操控内存区域。目的是为构建在其上运行的应用程序提供一个运行环境,能够运行java字节码。JVM可以解读指令代码并与底层进行交互:包括操作系统平台和执行指令并管理资源的硬件体系结构。jdk1.7结构图(详细)JVM内存模型组成元素Java内存模型主要包含线程私有的程序计数器、java虚拟机栈、本地方法栈和线程共享的堆空间、元数据区、直接内存。Java运行时数据区域Java虚拟机在执行过程中会将所