js 性能优化
内存管理
内存:由可读写单元组成,表示一片可操作空间
管理:人为的去操作一片空间的申请、使用、释放
内存管理:开发者主动申请空间、使用空间、释放空间
简单的一个内存管理流程:
//申请
let obj = {};
//使用
obj.name = 'lg';
//释放
obj = null;
![js 性能优化](https://img.it610.com/image/info9/c7a1ce94bbd740498b23490a47d9122e.jpg)
文章图片
引用计数算法
![js 性能优化](https://img.it610.com/image/info9/5a6ea87bd6874eeba024a8abf3018727.jpg)
文章图片
![js 性能优化](https://img.it610.com/image/info9/875ff241338c463a8569a81d9122c3dc.jpg)
文章图片
![js 性能优化](https://img.it610.com/image/info9/1c64e9c8cb364cb88a93895bb124f125.jpg)
文章图片
何为循环引用对象
![js 性能优化](https://img.it610.com/image/info9/ad920ff4d8a94c05bbf2a1d3d5c24dca.jpg)
文章图片
标记清除算法实现原理
![js 性能优化](https://img.it610.com/image/info9/4597e90fcb424c50b00877d9d5c96a53.jpg)
文章图片
![js 性能优化](https://img.it610.com/image/info9/3330a1ec79af41fe805382822655eb54.jpg)
文章图片
可以解决引用计数算法中无法回收循环引用的对象
![js 性能优化](https://img.it610.com/image/info9/1cff6582b0544557a5c4437f3ff1e979.jpg)
文章图片
回收的空间很有可能不连续,碎片化
标记整理算法 【js 性能优化】
![js 性能优化](https://img.it610.com/image/info9/2ac3d3bae171441281a38cae47f2dd08.jpg)
文章图片
![js 性能优化](https://img.it610.com/image/info9/dbbc0f17e31242cb84161e19eaf039cf.jpg)
文章图片
![js 性能优化](https://img.it610.com/image/info9/968a62747796452389678309beb4ff44.jpg)
文章图片
![js 性能优化](https://img.it610.com/image/info9/079dbece3e4742b4ac1997545313e3bd.jpg)
文章图片
认识V8
1.即使编译
2.内存设限
![js 性能优化](https://img.it610.com/image/info9/315cb51398b54cef9a7d8af5267e8a38.jpg)
文章图片
如何回收新生代对象
新生代指的是存活时间较短的对象
回收过程采用复制算法+标记整理
新生代内存空间分为使用空间:From,空闲空间:T
如何回收老年代对象
![js 性能优化](https://img.it610.com/image/info9/4582e9ddb47f4489b87e9ce394e4a8d6.jpg)
文章图片
![js 性能优化](https://img.it610.com/image/info9/7ba66e90b5644536b374cd019f59c174.jpg)
文章图片
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 数据库设计与优化
- Java内存泄漏分析系列之二(jstack生成的Thread|Java内存泄漏分析系列之二:jstack生成的Thread Dump日志结构解析)
- Improve|Improve Nested Conditionals(优化嵌套的条件语句) 面对大量的if-else语句
- 首屏时间,你说你优化了,那你倒是计算出给给我看啊!
- 数据库|SQL行转列方式优化查询性能实践
- 性能测试中QPS和TPS的区别
- iOS内存对齐原则
- #12-UITableView|#12-UITableView 优化方案
- javascript|javascript 性能测试笔记