# fed-e-task-01-02 **Repository Path**: frontend_site/fed-e-task-01-02 ## Basic Information - **Project Name**: fed-e-task-01-02 - **Description**: ES 新特性与 TypeScript、JS 性能优化 - **Primary Language**: JavaScript - **License**: ISC - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-05-31 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 1. 描述引用计数的工作原理与优缺点 ### 1. 工作原理 设置引用数判断,当前引用数是否为0,通过引用计数器记录修改引用数,当引用关系修改时修改引用数字,当引用数为0时,立即进行垃圾回收 ### 2. 优缺点 优点: 1. 发现垃圾时立即回收 2. 最大限度减少程序暂停 缺点: 1. 无法回收循环引用的对象 2. 时间开销大 ## 2. 描述标记整理算法的工作流程 核心思想:标记阶段与清除阶段 标记阶段: 遍历所有对象,找出活动对象并进行标记操作 清除阶段: 遍历所有对象,找出没有进行标记的对象及消除标记,进行内存地址整理,最后进行清除操作完成垃圾回收 ## 3. 描述V8中新生代存储区垃圾回收的流程 回收过程采用复制算法+标记整理; 新生代存储区分为两个等大小的空间:使用空间From,空闲空间To,活动对象存储在From空间,当From空间使用大小达到一定程度时,将对From空间进行标记整理操作,之后将其活动对象拷贝至To空间,From与To交换空间完成释放。 ## 4. 描述增量标记算法在何时使用,及工作原理 在V8回收老生代对象时使用;即在V8引擎中,将某一段时间内标记过程拆分为多个更小(更短时间段的)标记过程进行标记操作,与程序执行交替进行,减少某一段时间内的阻塞时间,以到达更好的体验效果;在整体时间内到达程序执行与标记操作对引擎的使用平衡; ## 5. 代码题 在app_1.js \app_2.js中