javaScript内存管理及监控

news2024/11/25 19:54:55

1.1 内存定义

        内存由可读写单元组成,表示一片可操作空间,开发者主动申请空间、使用空间、释放空间。内存主要存储变量等数据,局部变量当程序执行结束,且没有引用的时候就会随着消失,全局对象会始终存活到程序运行结束。

        V8是一款主流的 JavaScript 执行引擎,V8内存分为新生代和老生代。V8内存的大小和操作系统有关:

  • 64位为1.4G,新生代空间为64M,老生代为1400M
  • 32位为0.7G,新生代空间为16M,老生代为700M

1.2 内存查看

  1. Node环境

        通过process.memoryUsage() 查看内存使用情况,具体参数如下:

                rss: V8申请到的总占用空间

                heapTotal: 堆总内存

                heapUsed: 已使用的内存

                external: node专有(底层是c,额外申请到的c++内存 )

2. Chrome浏览器查看内存

打开开发者工作,在控制台输入window.performance.memory。

3. Performance工具

打开开发者工具 => 性能 => 勾选“内存”复选框 => 单击“记录”=> 随便访问网页。如下图所示:

点击停止后,生成如下报告,看JS堆的线条,幅度最大的地方就是内存使用最高的,如果内存一直居高不下,即表示没被回收,可能出现内存泄漏,展示图如下:

4. 堆块照查找分离 DOM

打开开发者工具 => 内存=> 单击“拍摄”=> 生成快照。如下图所示:

操作后再生成快照,在类筛选器框内,输入deta,如下:

输入deta可查看:

      • 界面元素存活在DOM树上,
      • 垃圾对象时的DOM节点 (节点不在当前dom树上,js中也没有人在引用)
      • 分离状态的DOM节点 (不在当前dom树上,但是js有引用)

5. 任务管理器监控内存变化

shift+esc 调出浏览器自带的任务管理器,右击选中javascript内存。

6. Timeline 时序图记录

开发者工具–> 性能–>录制–>模拟用户行为

7. 确定是否频繁垃圾回收

       GC工作时应用程序是停止的,频繁且过长的 GC 会导致应用假死,用户使用中感知到应用卡顿。可通过以下两种方式判断:

  • Timeline 中频繁的上升下降
  • 任务管理器中数据频繁的增加减小

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/84102.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【简单项目实战】用C++实现学生成绩管理系统

目录 ●功能介绍 ●案例 ●代码展示 ●结果展示 ●功能介绍 用 C设计一个程序,能提供下列功能: 1. 录入学生成绩信息。按照学号,姓名,语文,数学,英语的格式录入学生的成绩。 2.展示目前录入学生的成绩信息。以…

MeterSphere使用mock基础

目录 一、添加mock数据 1、进入页面添加 2、 添加单个mock 3、添加多个mock数据 二、运行mock 1、选择设置接口的TEST 2、选择mock环境 3、设置定义的mock参数运行 一、添加mock数据 1、进入页面添加 在接口定义页面,按下图1-2-3顺序添加 2、 添加单个mock…

[附源码]Nodejs计算机毕业设计基于JAVA人事管理系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

如何利用TL431设计一个可调电压源

TL431是一个三脚电压可控的稳压器件,常用的封装有TO-92,SOT-23,SOT-89,电路符号是这个, TL431常被用在参考电压/基准电压电路,用来替代稳压管 其中1脚是reference,2脚是Anode,3脚是Cathode TL4…

基于微信小程序的校园二手交易-计算机毕业设计

项目介绍 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,校园二手交易被用户普遍使用,为方便用户能…

最新版网络组件包:Rebex Total Pack for .NET

Rebex Total Pack for .NET 组件包: Rebex 的所有 .NET 组件都在一个包中:SFTP、FTP、HTTPS、IMAP、POP3、SMTP、EWS、SNTP/Time/Daytime、Mail、MSG、TLS、SSH Shell、Telnet、终端仿真、安全、Syslog、WebSocket、 ZIP 压缩,SFTP/SSH 服务…

Java之final相关内容详解【面试题】

1、final关键字除了修饰类之外,还有哪些用法呢? (1)final修饰的变量,一旦赋值,不可重新赋值; (2) 如果引用为引用数据类型,比如对象、数组,则该对…

生成模型(二):VAE

自动编码器的发明是为了重建高维数据(这可能不是变异自动编码器的真实情况)。一个很好的副产品是降维:瓶颈层捕获了一个压缩的潜在编码。这样的低维表示可以作为各种应用中的嵌入向量(如搜索),帮助数据压缩…

计算机研究生就业方向之大厂销售(营销)

我一直跟学生们说你考计算机的研究生之前一定要想好你想干什么,如果你只是转码,那么你不一定要考研,至少以下几个职位研究生是没有啥优势的: 1,软件测试工程师(培训一下就行) 2,前…

世界杯---人生就是一届又一届世界杯

注意:下面有视频看到文章会有声音,如果打扰到您非常抱歉,视频在文章最下面,还望观众老爷们不要在意,蟹蟹理解~ 🚀write in front🚀 📝个人主页:认真写博客的夏目浅石. &a…

OTP语音芯片是用什么软件来编程,以及如何烧录的?

目录 OTP语音芯片的开发环境: 也就是一般的客户想自己开发,基本不可能了,因为前期的培训成本、工具成本都是比较高的 OTP语音芯片的烧录方法: 第1步,是开发编译好程序之后,生成了对应的bin文件&#xf…

15、Redis集群

文章目录15、Redis集群15.1 问题15.2 什么是集群15.3 删除持久化数据15.4 制作6个实例15.4.1 配置基本信息15.4.2. redis cluster配置修改15.4.3. 修改好redis6379.conf文件,拷贝多个redis.conf文件15.4.4 使用查找替换修改另外5个文件15.4.5 启动6个redis服务15.5 …

MySQL innodb引擎架构分析- Double Write Buffer

文章目录系列文章目录前言一、Double Write Buffer是什么?二、Double Write Buffer步骤步骤对性能的影响总结系列文章目录 1. MySQL innodb引擎架构分析-Buffer Pool 2. MySQL innodb引擎架构分析-Redo log 3. MySQL innodb引擎架构分析- Double Write Buffer 前言…

java基于ssm+vue+elementUI实验报告管理系统

BS的实验报告管理系统是针对目前大学推广与交流的实际需求,从实际工作出发,对过去的实验报告管理系统存在的问题进行分析,完善用户的使用体会。采用计算机系统来管理信息,取代人工管理模式,查询便利,信息准…

鸡血篇:网络工程师为什么要学Python,如何学Python

两个多月之前写了一篇“送给打算考IE,正在学网络,纠结要不要转行学网络的你们”的文章,意外地收到了不少小伙伴的私信,大多咨询如何学习网络工程,以及什么方向的IE更有前景之类的问题。其实IE的话题我不想再多说&#…

Redis缓存一致性问题

目录 1、背景 2、缓存读写模式 2.1、Cache-Aside Pattern(旁路缓存模式) 2.2、Read-Through/Write-Through(读写穿透模式) 2.3、Write Behind Pattern(异步缓存写入) 3、数据不一致的几种场景 3.1、先删缓存,再更新数据库 3.2、先更新…

豆瓣评分9.1!据说入门Python的人都读过

前言 你是否正在寻找一本适合初学者入门Python的书籍呢? 如果是,那你来对地方了,以我个人经验,开始学习一门新的编程语言是相当困难和耗时的,这也是我今天要和大家分享这本书的原因,不卖关子了&#xff0…

算法竞赛入门【码蹄集进阶塔335题】(MT2051-2075)

算法竞赛入门【码蹄集进阶塔335题】(MT2051-2075) 文章目录算法竞赛入门【码蹄集进阶塔335题】(MT2051-2075)前言为什么突然想学算法了?为什么选择码蹄集作为刷题软件?目录1. MT2051 矩阵01变2. MT2052 矩形3. MT2053 切蛋糕4. MT…

面试怕问到缓存穿透?看这篇就够了

面试怕问到缓存穿透?看这篇就够了! 缓存穿透 缓存穿透指的是请求的数据在数据库和缓存中都不存在,这样缓存永远都不会生效,这些请求就会直接打到数据库中。 就比方说,你去查询一个商户,带着id为负数的参数…

艾美捷SAM甲基转移酶活性分析试剂盒使用前准备方案

关键生物分子和蛋白质的甲基化在许多生物系统,包括信号转导、生物合成、蛋白质修复、基因沉默和染色质调节。S-腺苷甲硫氨酸(SAM)依赖性甲基转移酶使用SAM ATP后最常用的酶辅因子。SAM,也称为AdoMet作为修饰蛋白质和DNA所需的甲基…