-2

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

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

1 回答 1

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

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

于 2013-10-10T15:39:13.810 回答