使用包含C ++元素的对象的Javascript垃圾收集

时间:2013-10-10 15:33:20

标签: javascript c++ garbage-collection

在底层,HTML元素是C ++。当我使用Javascript并创建一个对象,如var e = document.getElementsByClassName(),后来不再使用需要该对象e ....它被解除引用。通常,垃圾收集会将其清除内存。但是,由于对象包含C ++代码(元素),因此Javascript grarbarge集合将无法清除对象的内存。我有几个问题:

  1. 如果网页客户端正在运行,例如5天......我运行e = document.getElementsByClassName()每分钟一次......我会的 过去5天内存满了引用对象的内存?
  2. 对于Google的V8 javascript引擎,它被编译为本机 码。因此,它可以在C ++对象上进行垃圾收集吗?

1 个答案:

答案 0 :(得分:1)

  1. 当Javascript垃圾收集器确定某个对象是垃圾时,它可以使用C ++ delete运算符来回收该对象的内存。所以你不应该泄漏任何记忆。

  2. 机器代码仍然可以调用运行时库例程,例如delete