前端性能优化(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、 内存泄漏 -参考文件

7.性能监控EMS 平台

    原文作者:木子喵
    原文地址: https://segmentfault.com/a/1190000019887186
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞