当前位置: 首页 > news >正文

排查内存泄露

1 通过Performance确认是否存在内存泄露

一个存在内存泄露的 DEMO 代码:

App.vue

<template><div><button @click="myFn" style="width: 200px; height: 200px;"></button><home v-if="ishow"></home></div>
</template>export default {components: {Home},data() {return {ishow: true}},methods: {myFn(){this.ishow = !this.ishow;}}
}

home .vue

<template><div><div>about</div><div>about</div><div>about</div><div>about</div><div>about</div></div>
</template>
<script>
export default {created() {setInterval(() => {this.$data.test += 1}, 100)setInterval(() => {this.$data.test += 1}, 100)setInterval(() => {this.$data.test += 1}, 100)setInterval(() => {this.$data.test += 1}, 100)},destroyed() {console.log('About destroyed')},
}
</script>

home 组件中,每次打开就会开启 setInterval ,并且没有销毁,会造成内存泄露
App 页面通过点击按钮,实现 home 组件的显示隐藏

在这里插入图片描述
点击录制按钮后,开始操作页面
连续点击很多次按钮,home 组件就会开启很多setInterval
点击 stop,结束录制

勾选Memory,会出现表示内存占用的折线图,如果折线图整体走势一直在上升,而没有下降的话,基本可以确定检测的网页操作存在内存溢出。

在这里插入图片描述

反观没有内存泄露的代码,曲线整体比较平稳

在这里插入图片描述

2 定位内存泄露位置

http://www.lryc.cn/news/175583.html

相关文章:

  • 【LeetCode-简单题】501. 二叉搜索树中的众数
  • MAC word 如何并列排列两张图片
  • PTA第三章作业题
  • vscode vue html 快捷键
  • mysql锁相关的总结
  • 计算机竞赛 深度学习乳腺癌分类
  • docker-compose搭建的mysql,如何定时备份数据
  • webpack:关于处理html文件的插件html-webpack-plugin、add-asset-html-webpack-plugin
  • 如何两个不同的脚本文件之间传递参数
  • 一篇文章彻底搞懂熵、信息熵、KL散度、交叉熵、Softmax和交叉熵损失函数
  • [架构之路-223]:数据管理能力成熟度评估模型DCMM简介
  • 十大排序算法的实现(C/C++)
  • HTML+CSS综合案例一新闻详情
  • 【Spring Boot】实战:实现Session共享
  • 3、Elasticsearch功能使用
  • 数据链路层协议
  • java版网页代码生成器系统myeclipse定制开发mysql数据库网页模式java编程jdbc生成无框架java web网页
  • ElementUI实现登录注册啊,axios全局配置,CORS跨域
  • 面经分享 | 某康安全开发工程师
  • leetcode - 389. Find the Difference
  • asp.net企业生产管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
  • vue中或者react中的excel导入和导出
  • 如何在Ubuntu的根目录下创建删除目录
  • lv5 嵌入式开发-6 线程的取消和互斥
  • el-table实现穿梭功能
  • Cron表达式_用于定时调度任务
  • CeresPCL ICP精配准(点到面)
  • CentOS安装kafka单机部署
  • 蓝牙核心规范(V5.4)11.2-LE Audio 笔记之LE Auido架构
  • 福建江夏学院蔡慧梅主任一行莅临拓世科技集团,共探AI+时代教育新未来