垃圾回收是如何工作的
==========
要搞清楚垃圾回收是如何工作的,需要先了解一些基本概念。
基本概念
====
-
常驻集大小(resident set size):NodeJS 进程运行时占据的内存大小,通常包含:代码、栈和堆。
-
栈(stack):包含原始类型数据和指向对象的引用数据。栈中保存着局部变量和指向堆上对象的指针或定义应用程序控制流的指针(比如函数调用等)。下面代码中,a 和 b 都保存在栈中。function add (a, b) { return a + b } add(4, 5)
-
堆(heap):存放引用类型数据,比如对象、字符串、闭包等。下面代码中,创建的 Car 对象会被保存在堆中。function Car (opts) { this.name = opts.name } const LightningMcQueen = new Car({name: ‘Lightning McQueen’}) 对象创建后,堆内存状态如下:现在我们添加更多的对象:const SallyCarrera = new Car({name: ‘Sally Carrera’}) const Mater =