内存检查:多种类型的内存泄漏分析方案
24-05-24 11:08
1178
0
内存泄漏
内存泄漏(Memory Leak)是指程序中已动态分配的堆内存,由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。
这是来自百度百科的一段解释,下面我们先来看下 Node.js 中的内存回收策略。
Node.js GC 的策略
首先我们要理解在 Node.js 存储中分为堆和栈:
栈中主要存储的是一些原始类型,比如 Boolean、Null、Undefined、Number、BigInt、String 以及 Symbol;
堆中主要存储引用类型的数据,比如对象、全局变量等。
由于栈是系统存储的临时数据,因此系统会进行释放,不会引发内存泄漏问题;而堆中的数据是需要程序自己进行清理,因此存在内存泄漏风险,在 JavaScript 中进行垃圾回收的有引用计数和标记清除法。
而在 Node.js V8 引擎中使用了多种方法的融合:
对于存活较短的存储对象会使用Scavenge 算法;
而对于存活较长的对象或者说在 Scavenge 算法中存储的对象数据超过一定比例时,则会使用标记清除法与标记整理法相结合的方式。
具体这三种算法的细节,你需要自行去了解下,本讲核心还是内存泄漏的类型以及分析方法,下面我们先来了解下内存泄漏的分类。
-
显示器比例影响效率?16:10 比 16:9 更好用?
下方这份图表是 2009 年到 2023 年全球市场范围内不同分辨率的个人电脑屏幕占比变化。到了 2023 年的今天,16:9 的屏幕占比遥遥领先... 2274 0 24-07-17 -
程序员面试宝典
《程序员面试宝典》不同于同类书籍的主要特点如下。● 细中国软件企业比较小,面试涉及的方面比较多、比较基础,比如常会考到一些编程基础... 1007 0 24-05-24 -
豆瓣同城小程序
你是不是也经常想出去参加一些有趣的活动,却总是找不到适合的?微信小程序版豆瓣同城 也许可以帮到你。这个非官方的微信小程序项目基于模... 1085 0 24-11-05 -
鲜活的数据 数据可视化指南
数据不是什么新鲜玩意。早在几个世纪之前,人们就开始对数据进行量化分析并为之绘制表格了。然而在为FlowingData(我创建的一个有关设计、... 908 0 24-05-24 -
AI照片评分 - 摄影点评大师
AI照片评分,摄影点评大师,每张照片都值得被欣赏,AI 将为你提供参考评分和深入评价网站地址:AI照片评分 - 摄影点评大师 1425 0 24-11-18 -
DBShop开源电子商务网店系统
DBShop开源电子商务网店系统采用业界知名框架 ZendFramework 2 开发而成。ZendFramework 2 为php 官方出品的顶级框架,安全性、灵活... 441 0 21-07-06 -
原生JS简易计算器
代码演示:<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1... 849 0 25-04-07 -
A Real Me - 有趣及有价值的测试网站
A Real Me致力于设计并开发原创、高品质、具时效性的各类有趣及有价值的测试产品。其范围包括但不限于心理性格、智力与各类知识、人际关... 987 0 25-01-08
发表我的评论
共0条评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~