首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏JMCui

    终结 finalize()和垃圾回收(garbage collection)

    垃圾回收器模式之标记-清扫(mark-and-sweep): stop-and-copy存在两个问题:一、你得有两个堆,然后你得在这两个分离的堆之间来回倒腾,从而维护比实际需要多一倍的空间。 为此引出了mark-and-sweep模式,当它遍历所有的引用,进而找出所有存活的对象,每当它找到一个存活对象,就会给对象一个标记,这个过程不会回收任何对象。 对一般用途而言,mark-and-sweep 方式速度相当慢,但是用在处理少量垃圾或不产生垃圾时,它的速度就很快了。mark-and-sweep 工作也必须在程序暂停的情况下工作。     垃圾回收器采用的 自适应 的技术,按照需求在各个模式之间切换,当JVM监视到所有对象都很稳定,只产生了少量的垃圾,就自动采用mark-and-sweep模式,要是堆空间出现很多碎片,就会切换回 stop-and-copy

    93570发布于 2018-03-16
  • 来自专栏Android相关

    Android Profile--Memory Monitor

    Dalvik Android 4.4(API 19)默认虚拟机为Dalvik,ART为可选项 Android 5.0(API 21)以及5.0版本以上的虚拟机使用ART 虚拟机处理了GC,Dalvik虚拟机使用mark-and-sweep 方案来进行GC,而ART使用generational方案,并且当内存需要Full GC的时候联合了mark-and-sweep方案进行回收,例如当内存变得极度碎片化的时候。

    1.7K30发布于 2018-10-24
  • 来自专栏程序那些事

    javascript中的内存管理

    Mark-and-sweep回收算法 讲到这里,大家是不是觉得JS的垃圾回收算法和java中的很类似,java中也有引用计数和mark-and-sweep清除算法。 事实上,现在基本上所有的现代浏览器都支持Mark-and-sweep回收算法。 调试内存问题 如果发送了内存泄露,我们该怎么调试和发现这个问题呢?

    81611发布于 2021-03-01
  • 来自专栏程序那些事

    javascript中的内存管理

    Mark-and-sweep回收算法 讲到这里,大家是不是觉得JS的垃圾回收算法和java中的很类似,java中也有引用计数和mark-and-sweep清除算法。 事实上,现在基本上所有的现代浏览器都支持Mark-and-sweep回收算法。 调试内存问题 如果发送了内存泄露,我们该怎么调试和发现这个问题呢?

    68630发布于 2021-03-16
  • 来自专栏大数据和云计算技术

    Automatic Management of Data and Computation in Datacenters

    2、将废弃不用或者经常不使用的数据从数据中心的存储空间自动回收(使用了标准的mark-and-sweep Garbage Collector),并保留生成该数据的计算来取代该数据,但是当该数据需要的时候

    913100发布于 2018-03-08
  • 来自专栏青年码农

    JavaScript垃圾回收策略

    标记清理 标记清理(mark-and-sweep)。当变量进入上下文,比如在函数内部声明一个变量时, let a = 1 这个变量会被加上存在于上下文中的标记。

    6631311发布于 2021-04-29
  • 来自专栏Fundebug

    JavaScript深入浅出第3课:什么是垃圾回收算法?

    McCarthy的垃圾回收算法现在通常被称作Mark-and-Sweep,它是现在很多语言(Java, JavaScript, Go)的垃圾回收算法的原型。 目前,主流的浏览器使用的垃圾回收算法都是基于mark-and-sweep: root对象包括全局对象以及程序当前的执行堆栈; 从root对象,遍历其所有子对象,能够通过遍历访问到的对象是可以访问的; 其他不能遍历对象是不可访问的

    58320发布于 2019-07-03
  • 来自专栏Golang语言社区

    golang的垃圾回收(GC)机制

    golang的垃圾回收采用的是 标记-清理(Mark-and-Sweep) 算法 就是先标记出需要回收的内存对象快,然后在清理掉; 在这里不介绍标记和清理的具体策略,只介绍 GC过程是怎么调度的以及stw

    1.5K70发布于 2018-03-23
  • 来自专栏前端博客

    JS引擎(1):JS引擎擂台赛,JavaScript引擎的特征比较及术语科普

    优化编译器初级编译器 Baseline + 优化编译器 IonMonkey有初级编译器 method JIT + 优化编译器 DFG JIT有自动内存管理分代式GC: 初生代: copying收集器; 年老代: 增量式mark-and-sweep , 可选compact分代式GC分代式GC: 初生代: copying收集; 年老代: 并发式mark-and-sweep分代式GC依赖于底层JVM的GC对象布局紧凑+隐藏类 Map紧凑+隐藏类 Shape

    1.4K20编辑于 2023-04-09
  • 来自专栏程序IT圈

    日活超过3亿的快手是怎么进行性能优化的?

    C 的内存 我们主要利用编译器插桩及 malloc hook 记录所有活着的内存块,利用 mark-and-sweep 算法在单独的进程中分析测试应用进程 Native Heap 中不可达的内存块。 利用 mark-and-sweep 算法在单独的进程中分析测试应用进程 Native Heap 中不可达的内存块(包含内存块地址)。

    1.2K40发布于 2021-01-19
  • SRE - Interview Q&A Simulation - DevOps and Operations Development

    Python Garbage Collection MechanismPython uses reference counting primarily, combined with mark-and-sweep Circular references are handled by the mark-and-sweep algorithm.6. Management and Garbage Collection in GoGo uses an automatic garbage collection (GC) mechanism, employing a mark-and-sweep

    43810编辑于 2024-09-08
  • 来自专栏灰子学技术

    内存管理篇(三):Go垃圾回收之三色标记算法

    三色标记法介绍: 三色标记法(tricolor mark-and-sweep algorithm)是传统 Mark-Sweep 的一个改进,它是一个并发的 GC 算法,在Golang中被用作垃圾回收的算法

    2K10发布于 2020-04-02
  • 来自专栏偏前端工程师的驿站

    JS魔法堂:再识IE的内存泄露

    JS Engine Object的内存回收机制    IE的JScript Garbage Collector采用的是Mark-and-Sweep算法,当执行垃圾回收时会先遍历所有JS Engine 由于Mark-and-Sweep算法的缘故,也能很好地释放引用孤岛的内存空间。    而IE下独有的CollectGarbage()则用于回收无引用或引用孤岛的JS Engine Object。  

    4.2K50发布于 2018-01-18
  • 来自专栏Lua学习笔记

    Lua基础知识总结笔记-八股文

    GC(四个阶段,标记清扫最主要) Lua 使用引用计数和周期性的全局扫描(mark-and-sweep)来实现垃圾回收。当一个值不再被引用时,它会被回收。 这些颜色用来表示对象的状态,以便进行标记-清扫(mark-and-sweep)算法的实现。下面详细解释每种颜色的意义: 黑色(Black) 黑色对象是指已经被标记为可达(reachable)的对象。

    96110编辑于 2024-09-24
  • 来自专栏大熊G的前端分享

    JavaScript的垃圾回收

    在浏览器的发展史上,用到过两种主要的方法:标记清理 和 引用计数 一、标记清理 JavaScript 最常用的垃圾回收策略是标记清理(mark-and-sweep)。

    62920编辑于 2022-11-14
  • 来自专栏前端博客

    JS引擎(0):JavaScript引擎群雄演义—起底JavaScript引擎

    SpiderMonkey1996年,祖师爷Brendan Eich新写的SpiderMonkey已经改为使用mark-and-sweep GC、tagged value。 于是其实早期的两个主要的JavaScript引擎实现,Mozilla SpiderMonkey和Microsoft JScript其实都一直在用mark-and-sweep GC。

    3.2K30编辑于 2023-04-09
  • 来自专栏前端小学生

    V8 GC垃圾回收

    老生代回收机制老生代采用了更复杂的回收机制,通常是 标记-清除(Mark-and-Sweep)进行垃圾回收标记阶段:首先通过标记根对象开始扫描,标记所有可达的对象。

    43810编辑于 2025-02-08
  • 来自专栏java一日一条

    JavaScript 内存泄露的4种方式及如何避免

    Mark-and-sweep 大部分垃圾回收语言用的算法称之为 Mark-and-sweep 。算法由以下几步组成: 垃圾回收器创建了一个“roots”列表。Roots 通常是代码中全局变量的引用。

    5.3K52发布于 2018-09-18
  • Go内存原理-GC原理

    runtime.GC 会主动触发 GC ​2)默认每 2min 未产生 GC 时,golang 的守护协程 sysmon 会强制触发 GC ​3)当 go 程序分配的内存增长超过阈值时,会触发 GC二、标记-清除(mark-and-sweep

    32410编辑于 2025-06-26
  • 来自专栏林小帅的专栏

    【Golang】基础入门 Hello World

    Go 1.5 自举( 用 Go 语言编写程序来实现 Go语言自身) Go 1.7 急速GC (tricolor mark-and-sweep algorithm 三色标记清除算法)(参考引用 2.)

    79350发布于 2019-09-09
领券