Gc
  • 2025-01-074. 说说对象分配规则
    对象优先分配在Eden区,如果Eden区没有足够的空间时,虚拟机执行一次MinorGC。大对象直接进入老年代(大对象是指需要大量连续内存空间的对象)。这样做的目的是避免在Eden区和两个Survivor区之间发生大量的内存拷贝(新生代采用复制算法收集内存)。长期存活的对象进入老年代。虚拟机为每
  • 2025-01-073. 什么时候会触发FullGC
    除直接调用System.gc外,触发FullGC执行的情况有如下四种。1.旧生代空间不足旧生代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象,当执行FullGC后空间仍然不足,则抛出如下错误:java.lang.OutOfMemoryError:Javaheapspace为避免以上两种状况引起的Full
  • 2025-01-071. 简述一下JVM内存模型
    JVM内存分为线程私有区和线程共享区线程私有区:程序计算器当同时进行的线程数超过CPU数或内核数时,就要通过时间片轮徇分派CPU的时间资源,不免发生线程切换。这时,每个线程就需要一个属于自己的计数器来记录下一条要运行的指令。如果执行的是JAVA方法,计数器记录正在执行的java字
  • 2025-01-06.NET Core GC对象 分配(GC Alloc)底层原理浅谈
    对象分配策略.NET程序的对象是由CLR控制并分配在托管堆中,如果是你,会如何设计一个内存分配策略呢?按需分配,要多少分配多少,移动alloc_ptr指针即可,没有任何浪费。缺点是每次都要向OS申请内存,效率低预留缓冲区,降低了向OS申请内存的频次。但在多线程情况下,alloc_ptr锁竞争会非常
  • 2025-01-06Redis中的Red Lock/Redis锁
    1.2RedLock注意红锁的服务器是只存锁信息的和存业务信息的redis服务器是分开的步骤:首先集群部署Redis,官方推荐至少5个实例,不需要主从和哨兵,每个服务器是独立的,不存在信息同步。五个服务器不需要任何交互。客户端对五个实例依次申请锁,如果最终申请成功的数量超过半数(>=
  • 2025-01-02JVM实战—8.如何分析jstat统计来定位GC
    大纲1.使用jstat了解线上系统的JVM运行状况2.使用jmap和jhat了解线上系统的对象分布3.如何分析JVM运行状况并合理优化4.使用jstat分析模拟的BI系统JVM运行情况5.使用jstat分析模拟的计算系统JVM运行情况6.问题汇总 1.使用jstat了解线上系统的JVM运行状况(1)JVM的整体运
  • 2025-01-01JVM实战—7.如何模拟GC场景并阅读GC日志
    大纲1.动手模拟出频繁YoungGC的场景2.JVM的YoungGC日志应该怎么看3.代码模拟动态年龄判定规则进入老年代4.代码模拟S区放不下部分进入老年代5.JVM的FullGC日志应该怎么看6.问题汇总 1.动手模拟出频繁YoungGC的场景(1)程序的JVM参数示范(2)如何打印出JVMGC日志(3)
  • 2025-01-01JVM实战—7.如何模拟GC场景并阅读GC日志
    大纲1.动手模拟出频繁YoungGC的场景2.JVM的YoungGC日志应该怎么看3.代码模拟动态年龄判定规则进入老年代4.代码模拟S区放不下部分进入老年代5.JVM的FullGC日志应该怎么看6.问题汇总1.动手模拟出频繁YoungGC的场景(1)程序的JVM参数示范(2)如何打印出JVMGC日志(3
  • 2025-01-01第12章 对象销毁与垃圾回收
    第12章对象销毁与垃圾回收销毁(disposal),指文件、锁、操作系统句柄和非托管对象的释放,相应的功能由IDisposable提供;垃圾回收,指托管内存不再使用后的定期回收,由CLR执行。销毁通常是显示调用的;垃圾回收是自动执行的。12.1IDisposable​接口、Dispose​方法和Close​方法
  • 2025-01-01第12章 对象销毁与垃圾回收
    第12章对象销毁与垃圾回收销毁(disposal),指文件、锁、操作系统句柄和非托管对象的释放,相应的功能由IDisposable提供;垃圾回收,指托管内存不再使用后的定期回收,由CLR执行。销毁通常是显示调用的;垃圾回收是自动执行的。12.1IDisposable​接口、Dispose​方法和Close​方法
  • 2025-01-01为何不建议频繁的触发浏览器的GC?
    不建议频繁触发浏览器的GC(垃圾回收)主要基于以下几点原因:性能影响:GC操作是一个相对耗时的过程。在GC执行期间,浏览器会暂停JavaScript代码的执行以及页面的渲染等工作,以确保内存回收的正确性。这种暂停虽然通常很短暂,但如果GC频繁触发,这些短暂的暂停就会累积起来,导致页面响应速度
  • 2024-12-31JVM实战—6.频繁YGC和频繁FGC的后果
    大纲1.JVMGC导致系统突然卡死无法访问2.什么是YoungGC什么是FullGC3.YoungGC、OldGC和FullGC的发生情况4.频繁YGC的案例(G1解决大内存YGC过慢)5.频繁FGC的案例(YGC存活对象S区放不下)6.问题汇总1.JVMGC导致系统突然卡死无法访问(1)基于JVM运行的系统最怕什么(
  • 2024-12-31JVM实战—6.频繁YGC和频繁FGC的后果
    大纲1.JVMGC导致系统突然卡死无法访问2.什么是YoungGC什么是FullGC3.YoungGC、OldGC和FullGC的发生情况4.频繁YGC的案例(G1解决大内存YGC过慢)5.频繁FGC的案例(YGC存活对象S区放不下)6.问题汇总 1.JVMGC导致系统突然卡死无法访问(1)基于JVM运行的系统最怕什么(2
  • 2024-12-30JVM实战—5.G1垃圾回收器的原理和调优
    大纲1.G1垃圾回收器的工作原理2.G1分代回收原理—性能为何比传统GC好3.使用G1垃圾回收器时应如何设置参数4.如何基于G1垃圾回收器优化性能5.问题汇总 1.G1垃圾回收器的工作原理(1)ParNew+CMS的组合有哪些痛点(2)G1垃圾回收器(3)G1如何实现垃圾回收的停顿时间是可控的
  • 2024-12-30C#知识整理-垃圾回收机制(GC)
    垃圾回收的基本知识-.NET|MicrosoftLearn非托管资源CLR系统只能跟踪其生存周期,而不能决定如何释放资源如:数据库连接,文件句柄、指针结果等非托管资源需要手动释放托管资源栈资源托管堆GC主要应用与托管资源从根对象遍历堆上分配的对象,不再被引用到的对象被判定为
  • 2024-12-268. GC 垃圾收集器
    堆内存被划分为新生代和年老代两部分,新生代主要使用复制和标记-清除垃圾回收算法;老年代主要使用标记-整理垃圾回收算法,因此java虚拟中针对新生代和年老代分别提供了多种不同的垃圾收集器,JDK1.6中SunHotSpot虚拟机的垃圾收集器如下:1.Serial垃圾收集器(单线程、复制算法)S
  • 2024-12-267. GC 分代收集算法 VS 分区收集算法
    1.分代收集算法当前主流VM垃圾收集都采用”分代收集”(GenerationalCollection)算法,这种算法会根据对象存活周期的不同将内存划分为几块,如JVM中的新生代、老年代、永久代,这样就可以根据各年代特点分别采用最适当的GC算法a)在新生代-复制算法每次垃圾收集都能发现大
  • 2024-12-265. 垃圾回收与算法
    1.如何确定垃圾a)引用计数法在Java中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关联的引用,即他们的引用计数都为0,则说明对象不太可能再被用到,那么这个对
  • 2024-12-26MySQL的MTS(多线程复制)和GC(组提交)
    开启MySQL的MTS(多线程复制)和GC(组提交)的主要参数如下:MTS(多线程复制)参数:slave_parallel_workers:设置从库上可以并行执行的线程数量。例如:slave_parallel_workers=8slave_parallel_type:设置从库并行复制的类型,有两个选项:DATABASE:基于库级别的并行复制。LOGICAL_CLOCK:基
  • 2024-12-264. JVM 运行时内存
    Java堆从GC的角度还可以细分为:新生代(Eden区、FromSurvivor(S0)区和ToSurvivor区(S1))老年代1.新生代a)Eden区Java新对象的出生地(如果新创建的对象占用内存很大,则直接分配到老年代)。当Eden区内存不够的时候就会触发MinorGC,对新生代区进行一次垃圾回收。b
  • 2024-12-25强引用
    //每一次创建一个对象都是强引用()也就是普通的引用Objectobject=newObject();publicclassTTT{//实际情况不需要重写,也不必要重写,java有垃圾回收器帮助回收C,C++需要回收。@Overrideprotectedvoidfinalize()throwsThrowa
  • 2024-12-23【电商搜索】文档的信息论生成聚类
    【电商搜索】文档的信息论生成聚类目录文章目录【电商搜索】文档的信息论生成聚类目录文章信息概览研究背景技术挑战如何破局技术应用主要相关工作与参考文献后续优化方向后记文章信息https://arxiv.org/pdf/2412.13534概览本文提出了一种基于信息论的生成
  • 2024-12-23JVM简介—2.垃圾回收器和内存分配策略
    大纲1.垃圾回收概述2.如何判断对象存活3.各种引用介绍4.垃圾收集的算法5.垃圾收集器的设计6.垃圾回收器列表7.各种垃圾回收器详情8.StopTheWorld现象9.内存分配与回收策略10.新生代不同配置演示11.内存泄漏和内存溢出12.JDK为提供的工具 1.垃圾回收概述 2.如
  • 2024-12-23Java的垃圾回收机制介绍、工作原理、算法及分析调优
    Java的垃圾回收(GarbageCollection,GC)是Java虚拟机(JVM)提供的一种自动内存管理机制,用于自动回收不再使用的内存空间,以避免内存泄露和内存溢出等问题。下面主要介绍Java垃圾回收的基本概念、工作原理、算法等。一、JVM内存结构在了解垃圾回收之前,我们需要先了解JVM的内存结构。J
  • 2024-12-23JDK监控和故障处理工具总结
    JDK命令行工具这些命令在JDK安装目录下的bin目录下:jps(JVMProcessStatus):类似UNIX的ps命令。用于查看所有Java进程的启动类、传入参数和Java虚拟机参数等信息;jstat(JVMStatisticsMonitoringTool):用于收集HotSpot虚拟机各方面的运行数据;jinfo(Configu