GC
  • 2024-07-02JVM8为什么要增加元空间 ?
    持久代持久代的大小为什么移除持久代?元空间元空间的特点:持久代持久代中包含了虚拟机中所有可通过反射获取到的数据,比如Class和Method对象。不同的Java虚拟机之间可能会进行类共享,因此持久代又分为只读区和读写区。JVM用于描述应用程序中用到的类和方法的元数据也存
  • 2024-07-01频繁FullGC问题
    频繁FullGC(FullGarbageCollection)是Java应用中常见的问题,频繁的FullGC(垃圾收集)问题会导致应用程序性能下降、响应时间变长,甚至可能导致应用程序停滞。,它会导致系统性能急剧下降,甚至引发系统卡死。频繁FullGC的原因1.堆内存设置不合理和内存分配不合理Survivor区设
  • 2024-07-01Elasticsearch:Painless scripting 语言(二)
    这是继上一篇文章“Elasticsearch:Painlessscripting语言(一)”的续篇。使用field API访问文档中的字段警告:FieldAPI仍在开发中,应视为测试版功能。API可能会发生变化,此迭代可能不是最终状态。有关功能状态,请参阅#78920。使用field API访问文档字段:field('my_
  • 2024-06-20mybatisplus代码生成
    1.引入依赖点击查看代码<!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.
  • 2024-06-17FinalReference 如何使 GC 过程变得拖拖拉拉
    本文基于OpenJDK17进行讨论,垃圾回收器为ZGC。提示:为了方便大家索引,特将在上篇文章《以ZGC为例,谈一谈JVM是如何实现Reference语义的》中讨论的众多主题独立出来。FinalReference对于我们来说是一种比较陌生的Reference类型,因为我们好像在各大中间件以及JDK中
  • 2024-06-17JAVA面试中,面试官最爱问的问题。
    解释Java中的垃圾回收机制。Java中的垃圾回收(GarbageCollection,GC)机制是指Java虚拟机(JVM)自动管理内存的过程,负责回收不再使用的对象所占用的内存空间,以避免内存泄漏和提升程序的内存利用效率。垃圾回收机制的核心是自动检测哪些对象不再被引用,然后释放它们所占用的内存。#
  • 2024-06-17【JVM】G1 垃圾收集器的垃圾收集过程
    G1(GarbageFirst)垃圾收集器是Java虚拟机(JVM)中的一种垃圾收集器,设计目标是提供高吞吐量和低停顿时间的垃圾收集。G1收集器将堆划分为多个大小相等的独立区域(Region),并通过并行和并发的方式进行垃圾回收。G1收集器可以回收年轻代(YoungGeneration)和老年代(OldGeneration)的垃圾
  • 2024-06-15Java应用线上问题排查工具整理
    关于线上问题Java应用的线上问题,总结起来大概分为几类:CPU占用高,内存溢出,执行结果不对。CPU占用高引起CPU占用高的原因可能有多种,比如:代码进入死循环并发请求量大频繁FullGC打印日志太过于频繁内存溢出导致内存溢出的原因可能是:分配的Java堆空间不够,可以通过启动参数
  • 2024-06-15SoftReference 到底在什么时候被回收 ? 如何量化内存不足 ?
    本文基于OpenJDK17进行讨论,垃圾回收器为ZGC。提示:为了方便大家索引,特将在上篇文章《以ZGC为例,谈一谈JVM是如何实现Reference语义的》中讨论的众多主题独立出来。大家在网上或者在其他讲解JVM的书籍中多多少少会看到这样一段关于SoftReference的描述——“
  • 2024-06-15JVM-垃圾回收器-ZGC
    新一代垃圾回收器ZGC的探索与实践-美团技术团队Main-Main-OpenJDKWiki介绍        ZGC(ZGarbageCollector)是一款性能比G1更加优秀的垃圾收集器。ZGC第一次出现是在 JDK11中以实验性的特性引入,这也是JDK11中最大的亮点。在JDK15中ZGC不再是实
  • 2024-06-15JVM 调优和深入了解
    调优的原则1、大多数的java应用不需要GC调优2、大部分需要GC调优的的,不是参数问题,是代码问题3、在实际使用中,分析GC情况优化代码比优化GC参数要多得多;4、GC调优是最后的手目的GC的时间够小GC的次数够少发生FullGC的周期足够的长,时间合理,最好是不发生
  • 2024-06-15jvm调优工具和调优策略
    JDK为我们提供的jvm工具命令行工具jps、jstat、jinfo、jmap、jhat、jstack可视化工具JMX、Jconsole、visualvm生产服务器推荐开启-XX:-HeapDumpOnOutOfMemoryError默认关闭,建议开启,在java.lang.OutOfMemoryError异常出现时,输出一个dump.core文件,记录当时的堆内存快
  • 2024-06-15JVM中的对象
    虚拟机中的对象对象的分配虚拟机遇到一条new指令时:根据new的参数是否能在常量池中定位到一个类的符号引用,如果没有,说明还未定义该类,抛出ClassNotFoundException1)检查加载先执行相应的类加载过程。如果没有,则进行类加载2)分配内存根据方法区的信息确定为该类分配的内存空
  • 2024-06-15JVM垃圾回收策略机制和算法
    判断对象的存活引用计数法给对象添加一个引用计数器,当对象增加一个引用时计数器加1,引用失效时计数器减1。引用计数为0的对象可被回收。(Python在用,但主流虚拟机没有使用)优点:快,方便,实现简单。缺陷:对象相互引用时(A.instance=B同时B.instance=A),很难判断对象是否该回收。
  • 2024-06-15JavaScript打包可执行文件
    pkg[选项]选项:-h,--help输出使用信息-v,--version输出pkg版本-t,--targets逗号分隔的目标列表(参见示例)-c,--configpackage.json或任何具有顶级配置的json文件--options将v8选项拷贝到可执行文件中,以便与它们一起运行
  • 2024-06-14Java性能优化:实用技巧与策略全解析
    引言在软件开发中,性能常常是衡量应用成功的关键因素之一。对于Java应用来说,有效的性能优化不仅可以提高用户满意度,还能降低运营成本。本文将探讨一些高效的Java性能优化技巧,并通过实际代码示例展示如何实施这些策略。垃圾回收优化垃圾收集(GC)是Java性能优化中最关键的部分。
  • 2024-06-13排查Java进程CPU占用高之三板斧
    写在前面线上环境突然出现Java进程CPU占用率持续超过100%的问题,该如何排查并定位呢?问题一:我们如何知道线上环境的那个服务器(或者哪个Docker容器)出现了CPU持续高的故障了呢?如果是有比较完善的监控设施,当出现CPU持续高时可以通过发送报警通知的方式告知开发人员,如果没有监控通知,
  • 2024-06-13JVM
    1.JVM快速入门从面试开始:请谈谈你对JVM的理解?java8的虚拟机有什么更新?什么是OOM?什么是StackOverflowError?有哪些方法分析?JVM的常用参数调优你知道哪些?内存快照抓取和MAT分析DUMP文件知道吗?谈谈JVM中,对类加载器你的认识?​ 位置:JVM是运行在操作系统之上的,它
  • 2024-06-13Jmeter 性能测试之阶梯式场景、波浪式场景
    一、阶梯式场景(负载测试)该场景主要应用在负载测试里面,通过设定一定的并发线程数,给定加压规则,遵循“缓起步,快结束”的原则,不断地增加并发用户来找到系统的性能瓶颈,进而有针对性的进行各方面的系统优化。使用到的线程为:jp@gc-SteppingThreadGroup(deprecated)在
  • 2024-06-11【数据库】mybatis生成java代码之AutoGenerator配置
    哈喽,大家好,我是木头左,AI改变生活!本文将详细解释MyBatis生成Java代码的过程,包括全局配置、数据源配置和策略配置。1.全局配置首先,我们需要创建一个GlobalConfig对象,用于配置MyBatis的全局设置。以下是一些常用的全局配置选项:setOutputDir(StringoutputDir):设置生
  • 2024-06-10Java 垃圾回收
    在C和C++中,许多对象要求程序员声明他们后为其分配资源,然后才能安全地使用对象。使用完后,则需要程序员将这些资源释放到自由内存池。如果资源得不到释放,则认为代码泄露内存。然而,如果过早地释放,又可能发生数据丢失、Null指针等问题。Java和C#都有单独的管理应用程序管理对
  • 2024-06-09快速了解JVM机制
    1.JVM简介JVM是JavaVirtualMachine的简称,意为Java虚拟机。虚拟机是指通过软件模拟的具有完整硬件功能的、运⾏在⼀个完全隔离的环境中的完整计算机系统。常⻅的虚拟机:JVM、VMwave、VirtualBox。JVM和其他两个虚拟机的区别:VMwave与VirtualBox是通过软件模拟物
  • 2024-06-07go pool
     来自:sync.Pool原理sync.Pool核心对象有三个New:函数,负责对象初始化Get:获取Pool中的对象,如果Pool中对象不存在则会调用NewPut:将对象放入Pool中NewfuncPool的结构很简单,就5个字段 typePoolstruct{ ... Newfunc()interface{} }
  • 2024-06-06JVM之GC篇:(一)引用计数与可达性分析
    文章目录0x00前言0x01引用计数0x02可达性分析0x03总结0x00前言GC的第一步就是要判断出哪些对象需要被回收。显然易见的是,当一个对象不再被使用后,那么就需要对其进行回收。那么问题就是,如何判断对象是否被使用?本文将介绍两种算法来判断对象的使用情况。0x01引
  • 2024-06-06jvm参数模板
    8g物理内存-Xms4g-Xmx4g-Xmn2g-Xss1m-XX:MetaspaceSize=128m-XX:MaxMetaspaceSize=256m-XX:SurvivorRatio=8-XX:MaxDirectMemorySize=512m-XX:+UseConcMarkSweepGC-XX:CMSInitiatingOccupancyFraction=70-XX:+UseCMSInitiatingOccupancyOnly-XX:+UseCMSCompactAtFullC