浏览器缓存策略、状态码见@AJAX到http
浏览器的垃圾回收机制
V8垃圾回收机制
用于管理代码运行过程中使用的内存
存在原因
垃圾收集器会按固定时间周期性的执行,去找出那些不继续使用的变量,然后释放其内存,如果内存开销比较大,GC就会停止响应其他操作,它会阻塞其他应用程序的执行。
方法
当不再被引用时,就会被垃圾回收,联系闭包。通常两种方式。
标记清除法(常用)
从对象开始递归遍历所有可以访问的对象,把它们标记为活动对象,然后清除未被标记的对象。
然后清除标记,等待下一次标记,也就是下一次清理
引用计数法(IE)
跟踪对象的引用次数,每当对象被引用时,引用次数加一,取消引用就减一。计数为0时,说明不再被引用,于是回收。
问题:循环引用时,两对象相互引用时,永远不为零。
1 | function fun(){ |
改进:
分代收集(根据存活时间,将内存分为四代)、增量收集(将垃圾回收拆分为多个小步骤,避免js被阻塞)
缺陷
GC时会停止响应其他操作,为了安全
耗时一般在100ms以上,当遇见动画、js游戏连贯性、操作性要求比较高时,GC就需要被优化,避免停止响应。
三色标记
v8策略
新生代、老生代区域
增量标记
并发回收
具体的算法是什么,GC的优化策略是什么,包括分代回收,增量GC