乐趣区

前端性能优化1内存管理

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 性能 监控
退出移动版