虚幻的垃圾回收
垃圾回收定义
垃圾回收是一种自动的内存管理机制,当程序的动态内存不再需要时,会自动予以回收,这种机制称为垃圾回收。垃圾回收可以减少程序员的负担和犯错的机会。
垃圾回收算法大致分类
- 引用计数式:通过额外的计数来实时计算单个对象的引用次数,当计数减少到0时就将对象回收。
- 追踪式:当对象达到垃圾回收条件时(内存不够或到达回收时间时)通过扫描系统中是否有对象的引用来盘对对象是否存活,然后回收对象。
- 保守式:并不能准确判断每一个对象是否存活,但是能保证在不回收存活对象的情况下回收尽可能多的无用对象。
- 精确式:在回收过程中能够准确识别每一个无用对象,通常需要额外的数据消耗(UE中的UPROPERTY)
- 搬迁式:在对象回收过程中需要移动对象在内存中的位置。
- 非搬迁式:在对象回收过程中不需要移动对象在内存中的位置。
- 实时式:不需要用户停止程序,就可以进行垃圾回收。
- 非实时式:与实时式相反,需要用户停止程序,才能进行垃圾回收。
- 渐进式:同样不需要终端程序执行,与实时式的区别在于不会立即回收对象,而是到达一定条件时才进行回收。
- 非渐进式:与渐进式的区别在于立即回收对象。