共计 816 个字符,预计需要花费 3 分钟才能阅读完成。
1.javascript 内存管理
内存的基本概念
1、分配所需的内存
2、内存的读与写
3、不需要时将其释放
内存的生命周期
- 定义变量时就完成了内存分配
- 内存的释放依赖垃圾回收销毁,或者手动销毁
2. 内存以两种形式存在 栈(stack) 堆(heap)
堆 (heap) 是没有结构的
数据可以任意存放。heap 用于复杂数据类型(引用类型)分配空间,例如数组对象、object 对象。
stack 是有结构的
每个区块按照一定次序存放(后进先出),stack 中主要存放一些基本类型的变量和对象的引用,存在栈中的数据大小与生存期必须是确定的。可以明确知道每个区块的大小,因此,stack 的寻址速度要快于 heap。
常见的 结构 – 递归运算。
3、什么是内存泄漏?
- 不再用到的内存,没有及时释放,就叫做内存泄漏(memory leak)。
- 程序的运行需要内存。只要程序提出要求,操作系统或者运行时(runtime)就必须供给内存。
- 对于持续运行的服务进程(daemon),必须及时释放不再用到的内存。否则,内存占用越来越高,轻则影响系统性能,重则导致进程崩溃。
- 提供自动内存管理,减轻程序员的负担,这被称为 ” 垃圾回收机制 ”
- 现在各大浏览器通常用采用的垃圾回收有两种方法:标记清除、引用计数。
4、什么是垃圾回收机制?
变量的生命周期
全局变量
- 他的生命周期会持续到页面关闭(这就涉及到了后面要总结的内存泄漏的一种方式)
局部变量
- 局部变量, 在所在的函数的代码执行之后, 局部变量的生命周期结束, 他所占用的内存会通过垃圾回收机制释放
5、如何使用 performance 工具
- FPS 是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数
如何使用 performance 工具
6、内存泄漏 - 参考文件
- 内存管理
- javascript 内存管理和 javascript 运行机制
- 内存泄漏
- 内存泄漏 2
- DOMContentLoaded
7. 性能监控 EMS 平台
- 性能监控 EMS 平台
- 谷歌浏览器 自带有 performance 性能 监控
正文完
发表至: javascript
2019-07-26