大前端

Javascript 性能优化01

2021-05-22  本文已影响0人  丽__

主要内容:

一、内存管理
//申请
let obj = {}
//使用
obj.name = 'zhangsan'
//释放
obj = null
二、JavaScript中的垃圾回收

Javascript中的可达对象


JavaScript中的引用与可达是怎样体现的

function objGroup(obj1,obj2){
  obj1.next = obj2
  obj2.prev = obj1
  return {
    o1:obj1,
    o2:obj2
  }
}

let obj = objGroup({name:'obj1'},{name:'obj2'})

image.png
三、GC算法介绍

GC垃圾是什么


GC算法是什么


常见的GC算法

四、引用计数算法实现原理
五、引用计数算法优缺点

优点:

function fn(){
  const obj1 = {}
  const obj2 = {}

  obj1.name = obj2;  
  obj2.name = obj1; 
  
  //循环引用的对象无法进行回收

  return '456465465'
}
fn()
六、标记清除算法实现原理
七、标记清除算法优缺点

优点:可以回收循环引用的对象,可以解决/循环引用的对象无法进行回收的问题
缺点:容易产生碎片化空间,浪费空间。相对于之前的垃圾回收来说,会产生空间碎片化的问题,不能让空间得到最大化的使用
不会立即回收垃圾对象

八、标记整理算法实现原理

标记整理的优缺点
优点:减少碎片化空间
缺点:不能立即回收垃圾对象

十、认识V8
十一、V8 垃圾回收策略

v8中常用的GC算法

十二、V8如何回收新生代对象

V8内存分配


新生代对象回收实现


回收细节说明

十三、V8 如何回收老生代对象

老生代对象回收实现


细节对比

十四、Performance工具介绍

Performance使用步骤

十五、内存问题的外在表现
十六、监控内存的几种方式

界定内存问题的标准


监控内存的几种方式

十七、任务管理器监控内存

浏览器任务管理器 shift + Esc


image.png
十八、Timeliness记录内存
image.png
十九、堆快照查找分离DOM

什么是分离DOM

F12 --> 内存-->堆快照

二十、判断是否存在频繁的GC

为什么确定频繁垃圾回收


确定频繁的垃圾回收

上一篇下一篇

猜你喜欢

热点阅读