-2

最下層の HTML 要素は C++ です。Javascript を使用して var e = document.getElementsByClassName() などのオブジェクトを作成し、後でそのオブジェクト e を使用する必要がなくなると、参照解除されます。通常、ガベージ コレクションはメモリから消去します。ただし、オブジェクトには C++ コード (要素) が含まれていたため、Javascript グラバージ コレクションではオブジェクトをメモリから消去できません。いくつか質問があります:

  1. たとえば、Web ページ クライアントが 5 日間稼働している場合、e = document.getElementsByClassName() を 1 分に 1 回実行すると、メモリは過去 5 日間の遅延オブジェクトでいっぱいになるのでしょうか?
  2. Google の V8 JavaScript エンジンの場合、ネイティブ マシン コードにコンパイルされます。このため、C++ オブジェクトのガベージ コレクションを実行できますか?
4

1 に答える 1

1
  1. Javascript ガベージ コレクターは、オブジェクトがガベージであると判断すると、C++delete演算子を使用してそのオブジェクトのメモリを再利用できます。したがって、メモリをリークしないでください。

  2. マシン コードは、delete.

于 2013-10-10T15:39:13.810 に答える