
GC
文章平均质量分 93
_Shelcon
努力分享成长的点点滴滴
展开
-
Lua GC机制浅析
lua的GC采用的是Mark&Sweep算法。根据之前的介绍可知,Mark&Sweep算法它是一种需要Stop the world的算法,其GC操作是不可打断的,那下面首先来分析一下为何会不可打断并且在lua中是如何解决这个问题的:把不可达对象看做白色,可达对象看做黑色,那Mark&Sweep算法的伪代码如下:每个新创建的对象的颜色为白色//初始化阶段遍历root链表中的对象,并将其加入到对象链表中//标记阶段当对象链表中还有未扫描...原创 2021-08-05 10:23:19 · 1346 阅读 · 0 评论 -
详解GC(二)实战篇
目录2.1 字符串拼接2.2 可变参数2.3 装箱2.4 常用容器及增长方式2.4.1 List、Stack、Queue:2.4.2 Hashset、Dictionary:2.4.3 LinkedList:2.4.4 容器操作产生的装箱2.5 匿名方法2.6 UnityAPI2.7 UGUI2.8 协程2.9 对象池2.1 字符串拼接C#的string是一旦生成就不可变的,.每次拼接或修改字符串都会生成一个新字符串,旧的字符串就...原创 2021-07-30 18:02:42 · 674 阅读 · 0 评论 -
详解GC(一)理论篇
一、理论篇GC全称Garbage Collection,垃圾收集,是一种自动管理堆内存的机制,负责管理堆内存上对象的释放。在没有GC时,需要开发者手动管理内存,想要保证完全正确的管理内存需要开发者花费相当大的精力。所以为了让程序员把更多的精力集中在实际问题上,GC诞生了。而GC世界里的对象,与我们常规理解的对象不同,它由头和域组成:简单的理解,GC将原本对象使用的内存空间包装成了域,又添加了一块头的区域用来存储对象本身的信息和GC所需要的信息,不同的GC算法它使用的信息也不同。一般来说,头中原创 2021-06-02 11:40:22 · 2511 阅读 · 0 评论