Skip to content

Latest commit

 

History

History
24 lines (17 loc) · 1.49 KB

22.精读V8引擎带来的JS性能变化.md

File metadata and controls

24 lines (17 loc) · 1.49 KB

022.精读《V8 引擎特性带来的的 JS 性能变化》.md

  • V8 加持下 JS 性能也变得更加强大了

改进点

  1. try catch 问题, 前端在 V8 优化之前捕捉异常性能不搞,必须使用的地方要把代码逻辑封装在函数中 try 住函数而不是代码块,降低性能损失(或者使用函数守卫,对每一个有异常的点给与判断)
    • 现代前端框架采用了很多异常捕获的方式,结合 async 和 await,node8 之后对 try 内部函数的性能损耗可以忽略不计
  2. 解决 delete 性能问题
    • 该 delete 的地方可以不用写成 undefined 了,以提升性能为代价降低代码可读性
  3. arguments 对性能影响忽略, 推荐使用箭头函数书写成员函数,减少 this 的疑惑
  4. 函数调用对性能影响越来越小,不需要过于担心注释和空白,函数间调用问题
  5. 32/64 位数字计算性能。尽量用字符串处理大数(BigInt)
  6. 遍历 Object
    1. 基本用法for in Object.keys() Object.values() v8 中for in 更慢,警惕过早优化
  7. 创建对象
  8. 多态函数性能问题
    1. 尽量让对象内部属性单态,如尽量不要对字符串数组 push 一个数字

summary

  • v8 优化带来一些 js 性能改变,但是 js 性能优化只解决了很小一块问题,对于整体的 js 前端优化还有很多事要做。dom 和样式的优化对性能影响也非常重大(首次渲染加载时间,CSSOM)代码质量仍然需要重视,提高代码性能。