Javascript V8如何处理“中的对象?”;“大对象空间”;

Javascript V8如何处理“中的对象?”;“大对象空间”;,javascript,garbage-collection,javascript-objects,v8,Javascript,Garbage Collection,Javascript Objects,V8,我在v8wiki中读到,堆中有很大的对象空间,GC不会移动它 大对象空间:此空间包含的对象大于其他空间的大小限制。每个对象都有自己的mmap内存区域。垃圾收集器永远不会移动大型对象 那么V8如何处理这些对象呢?所以如果我有这样的物体 function Point() { this.a = new Array(99999999).join("aaaaaaaaaa"); this.b = new Array(99999999).join("aaaaaaaaaa"); this.c = n

我在v8wiki中读到,堆中有很大的对象空间,GC不会移动它

大对象空间:此空间包含的对象大于其他空间的大小限制。每个对象都有自己的mmap内存区域。垃圾收集器永远不会移动大型对象

那么V8如何处理这些对象呢?所以如果我有这样的物体

function Point() {
  this.a = new Array(99999999).join("aaaaaaaaaa");
  this.b = new Array(99999999).join("aaaaaaaaaa");
  this.c = new Array(99999999).join("aaaaaaaaaa");
}
var a = new Point();

它将被移动到较大的对象空间,并且永远不会被GC清理掉(这里是V8开发者)。Bergi的评论是正确的。大型对象不会移动到大型对象空间,而是在大型对象空间中创建。只要他们还活着,他们就不会被感动。但是它们像任何其他对象一样被垃圾收集:当GC检测到它们不再存在时,内存将被释放。一般来说,释放死物并不涉及移动它们。

(这里是V8开发者)。Bergi的评论是正确的。大型对象不会移动到大型对象空间,而是在大型对象空间中创建。只要他们还活着,他们就不会被感动。但是它们像任何其他对象一样被垃圾收集:当GC检测到它们不再存在时,内存将被释放。通常,释放死物不涉及移动它们。

从不移动!=从未清理过。看一下@Bergi谢谢,明白了!从未动过!=从未清理过。看一下@Bergi谢谢,明白了!