自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 JVM调优实践

每次请求,创建了一个线程池,随着接口耗时的增加,同一时空可能会产生大量线程,每个线程都需要开辟栈空间,线程不断增多 最终导致栈内存溢出。指令:-XX:NewRatio=4 //表示新生代:老年代 = 1:4 即老年代占整个堆的4/5;Full GC次数减少50%以上,单次、累积Full GC耗时减少50%以上,服务发布不触发Full GC。Young GC次数减少20%-30% ,Young GC累积耗时减少20%Young GC次数减少20%-30% ,Young GC累积耗时减少20%

2023-08-20 19:02:34 79

原创 垃圾收集器

CMS 基于“标记一清除”算法实现。多次垃圾收集后,空间碎片过多,给大对象分配带来很大的麻烦,往往会出现老年代还有很大的空间剩余,但是无法找到足够大的连续空间来分配当前对象,不得不提前触发一次Full GC,CMS收集器要进行FullGC时开启内存碎片整理。在Young GC和Mixed GC中,G1垃圾收集器都会对每个Region的存活对象数量进行统计,根据存活对象数量和空闲Region的数量,动态地决定垃圾收集的区域和顺序这种动态的垃圾收集策略,可以避免Full GC的发生,提高了应用程序的响应速度。

2023-08-20 19:00:43 56

原创 垃圾收集算法

复制算法是为了解决效率问题而出现的,它将可用的内存分为两块,每次只用其中一块,当这一块内存用完了,就将还存活着的对象复制到另外一块上面,然后再把已经使用过的内存空间一次性清理掉。Safe Region 是一片区域,在这个区域的代码片段,引用关系不会发生变化,因此,在 Safe Region 中任意地方开始垃圾收集都是安全的。线程执行到 Safe Point 的时候,OopMap 保存了当前线程的上下文,当线程执行到这些位置的时候,说明线程当前的状态是确定的,线程有哪些对象、使用了哪些内存。

2023-08-20 18:55:51 66

原创 对象内存分配原则

好处:对象在 Survivor 中每熬过一次 MinorGC,年龄就增加1岁,当它的年龄增加到一定程度(默认为15岁,CMS收集器默认6岁,不同的垃圾收集器会略微有点不同),就会被晋升到老年代中,设置较短的年龄,尽快让大对象到老年代中去。好处:在TLAB启动的情况下,在线程初始化时,虚拟机会为每个线程分配一块TLAB空间,只给当前线程使用,这样每个线程都单独拥有一个空间,如果需要分配内存,就在自己的空间上分配,这样就不存在竞争的情况,可以大大提升分配效率。长期存活的对象将进入老年代。大对象直接进入老年代。

2023-07-16 22:27:42 43

原创 对象创建过程

通过逃逸分析尝试由TLAB(栈上分配)分配,jvm开启TLAB和标量替换,分配不成功,则到Edem区分配,如果垃圾算法是标记替换则使用指针碰撞分配内存,如果垃圾算法为标记清除则使用空闲列表分配内存。当虚拟机遇到new这个指令时,会首先检查这个指令的参数能否在元空间的常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载,即判断元空间中是否包含这个类的类元信息。将对象的所属的类、对象的HashCode值、对象的GC信息、锁信息等数据存放在对象头中。相当于增加一层抽象层。

2023-06-18 11:49:28 43

原创 JVM类加载器

从 java.ext.dirs 系统属性所指定的目录中加载类库,或从 JDK 的安装目录 jre/lib/ext 下加载类库,如果用户创建的 jar 放在此目录,也会由扩展类加载器加载。1、如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给上层加载器去完成,每一个层次的类加载器都是如此。2、只有当上层加载器反馈自己无法完成这这个加载请求(它的搜索范围中没有找到所需的类)时,子加载器才会尝试自己去加载。类加载器核心类:Launcher类。

2023-06-03 21:49:00 37

原创 清理Redis数据

定时清理Redis数据。

2023-05-25 20:30:00 166

原创 钉钉预警脚本

【代码】钉钉预警脚本。

2023-05-24 20:45:00 107

原创 安装python3

安装python3环境

2023-05-24 20:15:00 175

原创 代码自动生成

/ @RequestMapping 默认驼峰命名法 -> 改为用-分隔,更好看。// 数据库字段 -> 属性名:驼峰命名。// 表名 -> 实体类名:使用驼峰命名。// 模块名称:生成 @RequestMapping 时的前缀。// 使用 lombok。

2023-05-22 19:00:00 36

原创 类加载过程

类加载过程

2023-05-17 21:15:00 43

原创 java内存区域

JVM内存区域

2023-05-13 16:49:58 91

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除