普通小游戏开发
API
开放能力
数据分析
视频拍摄器
多端支持

tt.triggerGC

基础库 1.15.0 开始支持本方法,低版本需做兼容处理

加快触发 JS 引擎 Garbage Collection(垃圾回收),GC 时机是 JS 引擎控制的,并不能保证调用后马上触发 GC。

GC 介绍

内存分配的方式

要了解 GC 是如何工作的,首先要了解内存是如果分配的,目前存在三种内存分配方式:

分配方式大小管理方式分配时间缺点
静态分配编译器决定,会比较大["编译期间"]只能使用固定长度内存,不支持函数递归
栈分配编译器决定,比较小自动管理["运行期间"]大小有限,容易堆栈溢出
堆分配系统决定,可以很大手动管理["运行期间"]需要手动管理,容易内存泄漏

而我们所讨论的 GC 主要是基于堆的内存管理。

什么是 GC

  简单说,GC 就是引擎用于管理内存的一种形式,GC 会试图回收我们不再使用的对象所占用的内存。对于 GC,一般而言只有两件事需要做,找到内存空间里面的垃圾,接着回收垃圾,让程序员能够再次利用这部分空间。

为什么需要关心 GC

首先需要明白,你不能去控制 GC 去强制回收某块内存。GC 是一个运行时程序。

  诸如 C 这样的高级语言,提供了 malloc()或者 free()这样的 API 要求程序员显示的分配或者释放内存,这种手动的方式相当麻烦,而且容易出错:要是你不小心释放了正在使用中的内存,你可能就会遇到由此引发的恶性 BUG。

  而 JavaScript 是一门宽容的语言。

   JavaScript 是一门捆绑了 GC 的语言。作为初学者,你可能只想要写出能够运行正常的代码。但随着你对程序语言的深入了解,你需要去关注 GC 的运行情况,确保你声明的对象再使用完毕后能够被 GC 回收,不会造成内存泄露。若是你编写的程序想要以 60fps 的帧率运行,从而带来良好的用户体验,你需要去关注 GC 停顿造成的影响,这时候你可能会选择尽量避免 GC 的发生,或者减少 GC 停顿时间。

点击纠错
评价此篇文档