dejavu00 / fed-e-task-01-02

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

邓力 | Part 1 | 模块二

简答题

此处回答简答题的内容。每一题为一个三级标题,可以后面跟上题目,也可以不跟,下面为格式示例:

第一题

工作原理:

  内部通过一个引用计数器,来维护当前对象的引用数,从而判断当前对象的引用数值是否为0,判断是否为垃圾对象。如为0,就将其所在的内存空间进行回收释放和使用。

优点:

  1. 发现垃圾时立即回收,根据当前引用数是否为0,找到立即释放。
  2. 最大限度减少程序暂停,内存平台有上限,时刻监控引用数值为0的对象,假如内存即将爆满,立马找到引用数值为0的对象内存空间进行释放。

缺点:

  1. 无法回收循环引用的对象进行空间回收
  2. 时刻监控当前对象的引用数值是否修改,时间开销大   

第二题

工作流程:

  1. 遍历所有对象,将当前所有可达对象进行标记(标记阶段)
  2. 对所有活动对象进行整理,移动对象位置,对未标记的对象进行空间清除(清除阶段)

第三题

工作流程:

  1. 新生代内存区分为二个等大小空间,使用空间为From,空闲空间为To
  2. 所有活动对象存储于From空间
  3. 标记整理后将活动对象拷贝至To空间
  4. From和To交换空间完成释放

第四题

使用时候:在老生代垃圾回收时进行的优化.

原理:

垃圾回收会阻塞程序的执行,标记增量将程序执行过程中节点的可达对象进行标记,在程序后面统一回收,虽然在程序执行中,多次标记阻塞执行,但是每次阻塞时间很短,避免了用户使用上可能造成的停顿感。

代码题1

code/app.js

练习1

项目文件说明

如果是有编程题或者项目演示,需要额外提交文件,可以直接放在当前仓库中。 这里简单描述当前仓库中的文件结构,下面为格式示例:

  • notes : 笔记
  • code : 代码
  • explain.mp4 : 作业演示视频

About


Languages

Language:JavaScript 100.0%