技术栈
gc
一丝晨光
1 个月前
java
·
c++
·
c#
·
objective-c
·
gc
·
权限
·
oop
面向对象彻底性、权限访问、垃圾回收
历史的潮流不断告诉我们,没有什么可以一步到位,如果是,那大概率是发生了极大的事件,比如小行星撞地球。社会本身就有限制和权限,在公网写博客是public, 不管是公司还是其他任何人都可以看。为本部门写的代码对本部门可能是public,其他部门是protected, 外部是private. 间谍战写了一些不可告人的代码,这是private.
小薯仔
2 个月前
.net
·
gc
·
垃圾回收
.net 之内存回收
一些基本概念如下:托管代码就是执行过程交由运行时管理的代码。 在这种情况下,相关的运行时称为公共语言运行时 (CLR),不管使用的是哪种实现(例如 Mono、.NET Framework 或 .NET Core/.NET 5+)。 CLR 负责提取托管代码、将其编译成机器代码,然后执行它。 除此之外,运行时还提供多个重要服务,例如自动内存管理、安全边界和类型安全。
翔云123456
2 个月前
java
·
jvm
·
golang
·
gc
Go语言的垃圾回收(GC)机制的迭代和优化历史
Go语言的垃圾回收(GC)机制自Go语言发布以来经历了多次重要的迭代和优化,以提高性能和减少程序运行时的停顿时间。 以下是一些关键的版本和相应的GC优化:
蓝黑2020
2 个月前
java
·
gc
Java知识点小结3:内存回收
注:本文是对《疯狂Java面试讲义》的小结。Java通过 new 关键字来创建对象实例,JVM会在堆内存中为对象分配空间。当对象失去引用时,JVM的垃圾回收机制会自动清理对象,回收内存空间。
PerfMan
2 个月前
linux
·
开发语言
·
gc
·
ebpf
·
垃圾回收
·
procstat
基于eBPF的procstat软件追踪程序垃圾回收(GC)事件
在性能敏感的应用程序中,偶尔遇到程序无故卡顿是开发者们常见的挑战之一。这种现象可能会表现为突然的延迟、系统响应时间增加、吞吐量的下降。这类问题的根源可能是编程语言的垃圾回收(Garbage Collection,GC)导致,尤其是在内存管理上有着较高压力的情况下。 然而,识别和跟踪这些GC事件并非易事。GC发生时,程序线程会暂停执行(如Golang的Stop-the-World,Java的GC暂停),这一操作可能影响到应用的性能表现。在传统的监控方法中,很难准确捕捉到这些事件的开始与结束。为了有效应对这种
得食猫
2 个月前
java
·
jvm
·
gc
JVM垃圾回收
JVM程序在运行过程中会不断创建对象,这些对象如果不被回收会一直占用内存,当剩余内存不足以为新对象分配空间时程序将无法运行,因此JVM会在程序运行时会不断地对不再被使用的内存(垃圾)进行回收。而在垃圾回收时会使程序暂停运行(SWT,Stop The World),如果回收的太过频繁会影响程序的执行效率。因此,选择一个合适的垃圾回收机制至关重要。
coffee_babe
2 个月前
java
·
jvm
·
gc
·
openjdk
·
hotspot
【JVM】垃圾收集器与GC日志(一)
串行:一个GC线程运行 并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。 并发(Concurrent):指用户线程与垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),用户程序在继续运行,而垃圾收集程序运行于另一个CPU上
coffee_babe
2 个月前
java
·
jvm
·
算法
·
gc
·
openjdk
·
hotspot
【JVM】垃圾回收算法(一)
Java程序在运行过程中会产生大量的对象,但是内存大小是有限的,如果光用而不释放,那内存迟早被耗尽。如C/C++程序,需要程序员手动释放内存,Java则不需要,是由垃圾回收期去自动回收。垃圾回收器回收内存至少需要做两件事情:标记垃圾、回收垃圾。于是诞生了很多算法
_whitepure
4 个月前
jvm
·
gc
·
垃圾回收器
JVM中的垃圾回收器
如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。虽然我们对各个收集器进行比较,但并非要挑选出一个最好的收集器。因为直到现在为止还没有最好的垃圾收集器出现,更加没有万能的垃圾收集器,我们能做的就是根据具体应用场景选择适合自己的垃圾收集器。
Benaso
5 个月前
golang
·
go
·
gc
·
三色标记法
Golang三色标记法
在JVM中,GC采用可达性分析法来判断对象是否死亡;在python虚拟机中,GC采用引用计数法加循环检测器来判断对象是否死亡,而在golang中,使用的是三色表记法来判断对象是否死亡。
青云交
5 个月前
jvm
·
gc
·
串行垃圾回收器
·
并行垃圾回收器
·
并发标记清除垃圾回收器
·
garbagefirst
·
选择合适的垃圾回收器
Java面试题--JVM大厂篇之掌握JVM性能优化:选择合适的垃圾回收器
在Java开发中,性能优化往往是提高应用稳定性和用户体验的关键所在。而垃圾回收器的选择和优化,是JVM性能调优的核心环节。如何在众多垃圾回收器中选出适合自己应用需求的那一个?如何通过合理配置和监控,最大限度地提升系统效率?本文将为你详细解析。
williamdsy
5 个月前
java
·
jvm
·
gc
·
内存模型
【退役之重学Java】JVM 内存模型和 GC 简述
堆空间的分区: youngS0 S1 EdgeoldS0 和 S1 交替使用,比如,S0 和 Edge 一起做完一次 GC,就把存活的对象复制到S1,并清空 S0 和 Edge,下一次GC 就用 S1 和 Edge 做,把存活下来的对象复制到 S0,并清空 S1 和 Edge 存活六次以上young GC 的对象放到 old 区
哎 你看
6 个月前
jvm
·
gc
·
类加载机制
·
垃圾回收
·
内存模型
深入理解JVM:介绍JVM的工作原理,包括类加载机制,内存模型,垃圾回收机制等
JVM的类加载机制主要包括加载、连接(验证、准备和解析)、初始化、使用和卸载五个阶段。第一个阶段是加载需求的.class文件到内存中。第二个阶段是完成对字节码的验证,为类变量分配内存并初始化为对应类型默认值。第三个阶段涉及到把类中的符号引用替换为直接引用。
可均可可
7 个月前
gc
·
垃圾回收
·
自动内存管理
·
heap
·
托管堆
Advanced .Net Debugging 7:托管堆与垃圾收集
一、简介 这是我的《Advanced .Net Debugging》这个系列的第七篇文章。这篇文章的内容是原书的第二部分的【调试实战】的第五章,这一章主要讲的是从根本上认识托管堆和垃圾回收。软件系统的内存管理方式有两种,第一种是手动管理内存,这种方式容易产生一些问题产生,比如:悬空指针、重复释放,或者内存泄漏等;第二种是自动内存管理,比如:java 平台、.NET 平台。尽管 GC 能帮助开发人员简化开发工作,让他们更关注系统的业务功能实现。如果我们对 GC 运作原理了解更深入一些,也可以让我们避
Flamesky
7 个月前
unity
·
性能优化
·
gc
·
堆
·
托管
Unity性能优化——托管堆/GC
许多 Unity 开发者面临的另一个常见问题是托管堆的意外扩展。在 Unity 中,托管堆的扩展比收缩容易得多。此外,Unity 的垃圾收集策略往往会使内存碎片化,因此可能阻止大型堆的收缩。
沙老师
7 个月前
c语言
·
c++
·
rust
·
gc
C语言传统垃圾收集器的缺陷以及我的思路
传统的比如Boehm回收器,都是在malloc/realloc/free上做文章,参考这篇文章【How the Boehm Garbage Collector Works】的解释,因为C数据结构是无法预料的,内存里面并没有特殊标记,很难判断哪些是指针哪些是数据,比如BoehmGC就只能尽最大能力判断。而高级语言都是自己定义一套完整数据结构,禁止用户直接操作内存,指针和数据都精确记录,就能在理论上确保,但是对C语言来讲似乎又显得太笨重。而C++/Rust那些套路,我从来都感觉太丑陋,因为本来低级语言生态位就
起司啊
7 个月前
gc
·
actuator
线上gc问题-SpringActuator的坑
一个不算普通的周五中午,同事收到了大量了cpu异常的报警。根据报警表现和通过arthas查看,很明显的问题就是内存不足,疯狂无效gc。而且结合arthas和gc日志查看,老年代打满了,gc不了一点。既然问题是内存问题,那么老样子,通过jmap和heap dump 文件分析。 不感兴趣的可以直接看结论
潇洒大舅哥
7 个月前
java
·
gc
如何判断对象可以被回收
在Java中,对象是否可以被回收通常由垃圾回收器决定。垃圾回收器使用一种称为"可达性分析"的算法来确定对象是否可被回收。可达性分析是指如果一个对象无法从任何GC Roots直接或间接访问到,它就被认为是不可达的,可以被垃圾回收。
程序员 jet_qi
8 个月前
jvm
·
gc
·
垃圾收集器
·
垃圾回收
·
内存分配
·
垃圾回收算法
·
引用类型
JVM第八讲:GC - Java 垃圾回收基础知识
本文是JVM第八讲, Java 垃圾回收基础知识。垃圾收集主要是针对堆和方法区进行;程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后也会消失,因此不需要对这三个区域进行垃圾回收。