# fed-e-task-01-02 **Repository Path**: fed-e-task/fed-e-task-01-02 ## Basic Information - **Project Name**: fed-e-task-01-02 - **Description**: 大前端训练营第一部分模块二(性能优化及函数式编程实践) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-01 - **Last Updated**: 2021-09-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 揭智勇 | Part 1 | 模块二 ## 简答题 ### 1. 描述引用计数的工作原理和优缺点。 工作原理: ``` 通过对变量设置引用计数器,当该变量引用关系改变时,引用计数器也会修改,当引用计数器的数字为0时,GC开始工作,立即对变量进行垃圾回收。 ``` 优缺点: ``` 优点: - 发现垃圾时立即回收 - 最大限度减少程序暂停 缺点: - 无法回收循环引用的对象 - 时间开销大 ``` ### 2.描述标记整理算法的工作流程。 ``` - 第一步遍历所有对象找标记活动对象 - 第二步遍历所有对象找没有标记对象 - 第三步进行整理,将活动对象进行改变,变成连续的位置 - 第四步将活动对象右边的空值的位置进行回收 ``` ### 3.描述V8中新生代存储区垃圾回收的流程。 ``` - 新生代内存区分为二个等大小空间的存储区域; - 两个等大小的空间取名From为使用空间,所有的对象声明会放在当前空间中,To为空闲空间 - 触发GC机制后,将活动对象进行标记整理,然后拷贝到To空间中 - 拷贝完后,然后再进行From与To空间的交换,原来的To变成From,原理的From变成To,这样完成空间释放。 ``` ### 4.描述增量标记算法在何时使用,及工作原理。 ``` 在垃圾太多时使用; 增量标记主要分为三个阶段,分别为根查找阶段,标记阶段,清除阶段 ``` ## 代码题1 ``` 见code/part1 ``` ## 代码题2 ``` 见code/part2 ```