最近阅读了《垃圾回收算法手册》这本经典的书籍,借此机会打算写几篇内存管理算法方面的文章,也算是自己的总结吧。
—— 题记
自动内存管理系统
自动内存管理主要面临以下三个方面的任务:
1.为新对象分配内存空间
2.确定“存活”对象
3.回收“死亡”对象所占用的内存空间
其中任务1一般称作“自动内存分配”(Memory Allocation ,下文简称 MA),任务2、3便是常说的“垃圾回收器”(Garbage Collect 即 gc ,下文简称GC)。一般来说,为了降低自动内存管理系统设计的复杂性和稳定性,一般会采用单线程设计方式,也就是说MA和GC不能同时进行,这样一来就解释一些托管代码在有大量GC的情况下程序卡顿的情况,因为在GC线程运行时,MA线程会等待,即托管代码暂停执行,直到GC结束,如果此时GC运行时间较长,那么程序卡顿的情况就会较为明显。
时间: 2024-10-13 16:15:35