We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
遍历GC Root(window,DOM,栈等)标记活动对象和非活动对象
回收非活动对象所占据的内存
内存整理
在V8中,会把堆分成新生代和老生代两个区域
新生代通常只支持1~8M的容量,存放生存时间短的对象,由副垃圾回收器负责。
老生代通常容量很大,存放生存时间长的对象,由主垃圾回收器负责。
在新生代中被划分为对象区和空闲区,新加入的对象全部加入对象区,当对象区快被写满时,就要进行一次垃圾回收操作。
因为要做频繁的复制操作,所以新生代一般设置容量较小。
副垃圾回收器还会采用对象晋升策略,移动两次仍然还存在就把它移动到老生代中去。
垃圾回收是运行在主线程上的,所以进行垃圾回收时,会造成卡顿。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
垃圾回收算法
遍历GC Root(window,DOM,栈等)标记活动对象和非活动对象
回收非活动对象所占据的内存
内存整理
新生代和老生代
在V8中,会把堆分成新生代和老生代两个区域
新生代通常只支持1~8M的容量,存放生存时间短的对象,由副垃圾回收器负责。
老生代通常容量很大,存放生存时间长的对象,由主垃圾回收器负责。
Scavenge 算法(新生代)
在新生代中被划分为对象区和空闲区,新加入的对象全部加入对象区,当对象区快被写满时,就要进行一次垃圾回收操作。
回收过程
因为要做频繁的复制操作,所以新生代一般设置容量较小。
副垃圾回收器还会采用对象晋升策略,移动两次仍然还存在就把它移动到老生代中去。
标记算法(老生代)
垃圾回收器的优化
垃圾回收是运行在主线程上的,所以进行垃圾回收时,会造成卡顿。
The text was updated successfully, but these errors were encountered: