• 2024-07-17对象存在位置
    对象优先在Eden分配堆分为新生代和老年代,新生代用于存放使用后就要被回收的对象(朝生夕死),老年代用于存放生命周期比较长的对象。创建的大部分对象,都属于生命周期较短的对象,所以会存放在新生代。新生代又细分Eden、FromSurvivor、ToSurvivor,对象会优先在Eden区分配。
  • 2024-06-15JVM 调优和深入了解
    调优的原则1、大多数的java应用不需要GC调优2、大部分需要GC调优的的,不是参数问题,是代码问题3、在实际使用中,分析GC情况优化代码比优化GC参数要多得多;4、GC调优是最后的手目的GC的时间够小GC的次数够少发生FullGC的周期足够的长,时间合理,最好是不发生
  • 2024-04-15【已解决】squashfs4.3编译过程中的一些问题
    Q:执行./build.sh时,mksquashfs.c和unsquashfs.c报错找不到major()和minor()函数的定义,找不到‘makedev’cc-O2-I.-D_FILE_OFFSET_BITS=64-D_LARGEFILE_SOURCE-D_GNU_SOURCE-DCOMP_DEFAULT=\"gzip\"-Wall-DGZIP_SUPPORT-DXATTR_SUPPORT-DXATTR_DEFAULT-c-omksqua
  • 2024-03-19Minor GC、Major GC、Full GC
    转载自:https://blog.csdn.net/xiaojin21cen/article/details/87779487https://blog.csdn.net/zs18753479279/article/details/119341774=====================  Java7及以前版本的Hotspot中方法区位于永久代中。同时,永久代和堆是相互隔离的,但它们使用的物理内存是连续的
  • 2024-01-24Java内存分配与回收策略
    HotSpot虚拟机GC分类针对HotSpot虚拟机的实现,GC可以分为2大类:部分收集(PartialGC)新生代收集(MinorGC/YoungGC):回收新生代,因为新生代对象存活时间很短,因此MinorGC会频繁执行,执行的速度一般也会比较快。老年代收集(MajorGC/OldGC):只对老年代进行垃圾收集。需
  • 2023-12-15Java-Jvm中GC类型及执行时机
    Java-Jvm中GC类型及执行时机堆的结构年轻代(YoungGeneration):Eden区:在年轻代中,对象首先被分配到Eden区。大多数对象很快就会被回收,所以它们被分配到Eden区以提高分配速度。Survivor区(S0和S1):Eden区中存活的对象会被移动到Survivor区。每次发生MinorGC时,存活的对象会被移
  • 2023-12-09关于博客园使用Markdown编辑器但是[TOC]无法正常生成目录
    目录这是一级标题这是二级标题这是三级标题这是四级标题一、fdisk工具创建一个磁盘分区1、虚拟机添加测试硬盘2、创建磁盘分区3、文件系统管理磁盘分区4、挂载二、parted命令使用场景操作命令'help'查看命令列表查看分区情况划分出主分区"parted1"删除分区格式化操作设置开机自动
  • 2023-12-05分区管理工具 fdisk parted
    目录一、fdisk工具创建一个磁盘分区1、虚拟机添加测试硬盘2、创建磁盘分区3、文件系统管理磁盘分区4、挂载二、parted命令使用场景操作命令'help'查看命令列表查看分区情况划分出主分区"parted1"删除分区格式化操作设置开机自动挂载方法一:编辑/etc/fstab文件方法二:编辑/etc/rc.loc
  • 2023-11-20新生代内存需要有两个Survivor区 S0、S1
     在我的上一篇博客中,介绍了JVM堆内存的结构以及在堆中进行的GC机制,链接是浅谈JAVAGC机制与性能优化那么,在JVM的新生代内存中,为什么除了Eden区,还要设置两个Survivor区?1为什么要有Survivor区先不去想为什么有两个Survivor区,第一个问题是,设置Survivor区的意义在哪里? 如果
  • 2023-10-27JVM 思考与总结
    相关基础知识见:深入理解JVM--垃圾收集器与内存分配策略 新生代为什么需要两个Survivor区?如果只有一个Eden区加一个Survivor区,那么MinorGC后Eden区还存活下来的对象复制到Survivor区。而Survivor区里的对象在这次MinorGC中,既有这次GC没活下来的,还有这
  • 2023-10-03什么是语义化版本里的 Major,Minor 和 Patch 版本号
    语义化版本(SemanticVersioning):Major、Minor和Patch版本号解析语义化版本,通常简称为SemVer,是一种软件版本号的标准化方案,旨在使软件版本号的管理更加透明和可预测。它主要由三个部分组成:Major(主版本号)、Minor(次版本号)和Patch(修订版本号)。在这篇文章中,我们将深入解释这三个部分
  • 2023-09-04第4篇 sound.c分析(应用层如何调用到内核层的)
    原文链接:https://blog.csdn.net/yangguoyu8023/article/details/1221146201.alsa_sound_initalsa的核心入口函数是sound\core\sound.c中的alsa_sound_initstaticstructsnd_minor*snd_minors[SNDRV_OS_MINORS];staticintsnd_open(structinode*inode,structfile*file
  • 2023-08-14年轻代和老年代垃圾回收
    复制算法更多博客内容访问只爱吃火龙果,点击了解详情概述复制算法将内存划分为两个区间,在任意时间点,所有动态分配的对象都只能分配在其中一个区间(称为活动区间),而另外一个区间(称为空闲区间)则是空闲的。当有效内存空间耗尽时,JVM将暂停程序运行,开启复制算法GC线程。接下来GC线
  • 2023-08-13《深入理解Java虚拟机》读书笔记:内存分配策略
    Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。关于回收内存这一点,我们已经使用了大量篇幅去介绍虚拟机中的垃圾收集器体系以及运作原理,现在我们再一起来探讨一下给对象分配内存的那点事儿。对象的内
  • 2023-08-08遇到的问题----java Unsupported major.minor version 51.0
     Unsupportedmajor.minorversion51.0不同的JDK版本使用的major.minor不同,所以会导致这个错误。编译器运行的jdk选择版本和使用的jdk版本号应该对应。解决起来也很方便:打开exclipse中项目上的属性—javacompiler–选择一个合适的版本后重新编译即可。具体步骤解决:项目------
  • 2023-07-24一次Java垃圾收集调优实战
    1资料JDK5.0垃圾收集优化之--Don'tPause(花钱的年华) 编写对GC友好,又不泄漏的代码(花钱的年华) JVM调优总结 JDK6所有选项及默认值 2GC日志打印 GC调优是个很实验很伽利略的活儿,GC日志是先决的数据参考和最终验证:-XX:+PrintGCDetails-XX:+PrintGCTimeStamps(GC发生的
  • 2023-07-16JVM专栏-内存分配与回收策略
    对象的内存分配,就是在堆上分配(也可能经过JIT编译后被拆散为标量类型并间接在栈上分配),对象主要分配在新生代的Eden区上,少数情况下可能直接分配在老年代,分配规则不固定,取决于当前使用的垃圾收集器组合以及相关的参数配置。以下列举几条最普遍的内存分配规则,供大家学习。对象优
  • 2023-07-15JVM垃圾收集
    默认垃圾收集器JDK1.7和JDK1.8默认垃圾收集器都是ParallelScavenge(新生代)+ParallelOld(老年代)JDK1.9默认垃圾收集器G1查看命令:java-XX:+PrintCommandLineFlags-versionG1JDK1.7推出的垃圾收集器,特点如下:1使用多核CPU来缩短Stop-The-World停顿的时间2分代收集3基于标记-
  • 2023-06-30内存分配与回收策略
    内存分配与回收策略对象的内存分配,就是在堆上分配(也可能经过JIT编译后被拆散为标量类型并间接在栈上分配),对象主要分配在新生代的Eden区上,少数情况下可能直接分配在老年代,分配规则不固定,取决于当前使用的垃圾收集器组合以及相关的参数配置。以下列举几条最普遍的内存分配规则
  • 2023-06-23GC种类
    youngGC(MinorGC):对新生代垃圾回收。新建对象一般放在新生代的Eden区进行分配,如果Eden区没有足够的空间就会触发youngGC。youngGC出发频率很频繁,回收速度也很快FullGC:回收整个新生代、老年代、永久代无用对象。FullGC较YoungGCstw时间更长至少10倍以上。FullGC触发条件:①在
  • 2023-05-05GC日志分析之配置参数
    一、常用的GC参数我们从简单到复杂,一步一步来验证前面学习的知识,学会使用,加深巩固。启动示例程序如果是在IDEA、Eclipse等集成开发环境中,直接在文件中点击鼠标右键,选择“Run…”即可执行。如果使用JDK命令行,则可以使用javac工具来编译,使用java命令来执行(还记得吗?JDK
  • 2023-03-19熟悉JVM吗?为什么新生代内存需要有两个Survivor区?
    在JVM的新生代内存中,为什么除了Eden区,还要设置两个Survivor区?为什么要有Survivor区如果没有Survivor,Eden区每进行一次MinorGC,存活的对象就会被送到老年代。老年代很快被
  • 2023-02-17Angular CLI - NodeJS 兼容版本
    |AngularCLI|Angular|NodeJS|TypeScript|RxJSVersion||-----------|----------
  • 2023-01-31gc 垃圾回收 jvm
    fullgc触发条件(1)System.gc()方法的调用。此方法的调用是建议JVM进行FullGC,虽然只是建议而非一定,但很多情况下它会触发FullGC,从而增加FullGC的频率,也即增加了间歇
  • 2023-01-30DevOps: 自动部署语义化版本实操
    本文将向您展示如何使用Buddy的流水线在任何Git存储仓中自动增加应用程序的版本。我们即将创建的流水线使用参数来定义我们想要提升的数字(主版本号/次版本号/修订号),使用脚