Heim Web-Frontend js-Tutorial Javascript 垃圾收集机制介绍理解_基础知识

Javascript 垃圾收集机制介绍理解_基础知识

May 16, 2016 pm 05:33 PM
垃圾 sammeln 机制

经常使用 Javascript 的人会琢磨其垃圾收集机制,Javascript 并不像 C,C++ 那样需要开发者手动去清除垃圾,在编写 Javascript 程序是,开发者无需关心内存使用问题,所需内存分配以及无用内存(垃圾)的回收完全实现了自动管理。究其根源,主要是程序收集那些不再使用的变量,并且释放其占用的内存。因此,垃圾收集机制会按照固定时间间隔,周期性反复的执行这一操作。


举例来说,局部变量只存在于函数内部,程序会为局部变量在栈内存或堆内存中分配对应的存储空间,当函数运行结束,局部变量所占用的内存就没有存在的必要了,这时程序会释放局部变量所占用的内存供其他变量使用。这是程序最简单释放内存的方法,但是很多时候,程序中变量会一直被使用,此时垃圾收集机制必须跟踪变量并且判断其是否被使用,是否可以释放其内存空间。

垃圾收集机制主要判断变量释放内存空间的方法有两个:其一是标记清除法,其二是引用计数法。

标记法,每个变量都有其运行环境,变量创建后会在某种环境中运行,比如创建一个局部变量,局部变量会运行在函数体内。当函数运行时,会标记局部变量为“进入环境”,当函数体运行结束后,意味着变量脱离了其运行环境,此时则将变量标记为“离开环境”。对于“离开环境”的变量,垃圾收集机制会进行相应记录,并且在下一个回收周期时将其释放。

引用计数法,跟踪记录每个值的被引用次数。声明一个变量并将一个引用类型值赋给该变量时,这个值得引用次数就是 1。如果同一个值又被赋给另外一个变量,则该值的引用次数加 1。相反,如果包含对这个值的引用的变量又取得另外一个值,这个值得引用次数减 1。当这个值得引用次数为 0 时,则说明没有办法再访问到此值,因此就可以将其占用的内存空间回收。当垃圾收集器在下一个周期运行时,会释放引用次数为零的值所占用的内存空间。(原文解释参考:Javascript 高级程序设计 - 第二版)

举个例子来说:

复制代码 代码如下:

            function countMethod(){
                  var object1 = new Object(); // 声明变量,计数器由 0 变为 1
                  var object2 = new Object(); // 声明变量,计数器由 0 变为 1
                  object1.method1 = object2;  // object1 计数器 -1,object2 计数器 +1
                  object2.method2 = object1;  // object1 计数器 +1,object2 计数器 -1
            }

此函数运行退出后,object1 的计数器读数为 1,object2 的计数器度数为 1。所以两个变量都不会被销毁。如果大量的这样的程序存在于函数体内,就会导致大量的内存被浪费而无法回收,从而导致内存的泄露。

上述问题解决方法,手动释放 object1 object2 所占用的内存。即:
复制代码 代码如下:

                 object1.method1 = null;
                 object2.method2 = null;

对比上面的例子,举一个正常情况下的例子。
复制代码 代码如下:

            function countMethod(){
                  var object1 = new Object(); // 声明变量,计数器由 0 变为 1
                  var object2 = new Object(); // 声明变量,计数器由 0 变为 1
                  object1.method1 = "This is object1";  // object1 计数器 -1,object1 读数变为0
                  object2.method2 = "This is object2";  // object2 计数器 -1,object2 读数变为0
            }

通过上例看出,正常情况下,当函数运行结束后,object1 object2的读数均为 0,在下一个垃圾收集周期时,会被回收并且释放其所占用的内存。
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So sammeln Sie schnell Hartholz im Stardew Valley So sammeln Sie schnell Hartholz im Stardew Valley Mar 26, 2024 am 11:21 AM

Hartholz ist ein wichtiges synthetisches Material im Spiel, sodass wir es in unserem täglichen Leben einlagern können. Welche spezifischen Möglichkeiten es gibt, um Hartholz zu erhalten? zum Weg, um bei Bedarf Hartholz in Monogatari zu erhalten. Möglichkeiten, in Stardew Valley an Hartholz zu kommen 1. Gehen Sie jeden Tag in den geheimen Wald, um Baumstümpfe auszugraben, um schnell an Hartholz zu gelangen. 2. Es besteht die Möglichkeit, Mahagonisamen zu erhalten, indem man Baumstümpfe abbaut und im geheimen Wald gegen Monster kämpft. 3. Durch das Pflanzen von Samen im Garten entstehen Mahagonibäume. 4. Schließlich können Sie nach dem Abbau von Mahagoni schnell eine große Menge Hartholz gewinnen.

Installieren Sie CentOS auf Mobiltelefonen und CentOS 7 auf Mobiltelefonen Installieren Sie CentOS auf Mobiltelefonen und CentOS 7 auf Mobiltelefonen Feb 29, 2024 pm 02:43 PM

Vorwort Als begeisterte Linux-Benutzer stehen wir häufig vor der Notwendigkeit, CentOS oder CentOS7 auf Mobiltelefonen zu installieren. Obwohl Mobiltelefone nicht die beste Linux-Plattform sind, müssen wir manchmal einige Linux-bezogene Vorgänge oder Entwicklungsarbeiten auf Mobiltelefonen durchführen. In diesem Artikel besprechen wir ausführlich, wie Sie CentOS oder CentOS7 auf Ihrem Telefon installieren. CentOS auf einem Mobiltelefon installieren Um CentOS auf einem Mobiltelefon zu installieren, benötigen wir zunächst ein Mobiltelefon, das Virtualisierungstechnologie unterstützt, beispielsweise ein Mobiltelefon, das das Android-System unterstützt. Anschließend können wir eine Terminalemulatoranwendung wie Termux verwenden, um Linux zu simulieren In Termux können wir einen Paketmanager verwenden, um CentOS zu installieren

Der Microsoft Edge-Browser unter Windows 11/10 fügt die Funktion „Mobile Upload' hinzu, um die geräteübergreifende Dateiübertragung zu erleichtern Der Microsoft Edge-Browser unter Windows 11/10 fügt die Funktion „Mobile Upload' hinzu, um die geräteübergreifende Dateiübertragung zu erleichtern Feb 22, 2024 am 08:10 AM

Microsoft hat dem Edge-Browser unter Windows 11/10 in der neuesten stabilen Version eine neue Funktion hinzugefügt, nämlich „Mobile Upload“. Benutzer können Dateien jetzt direkt von ihren Telefonen über den Edge-Browser hochladen, und die Funktion funktioniert auf fast allen Websites ohne Dateiformatbeschränkungen. Die Einführung dieser Funktion bietet Benutzern eine bequemere Upload-Methode und macht die Verwaltung und Freigabe von Dateien bei Verwendung des Edge-Browsers effizienter. So verwenden Sie die Funktion „Mobiles Hochladen“: Öffnen Sie den Edge-Browser, klicken Sie auf einer beliebigen Website auf die Option „Hochladen“ und wählen Sie dann in der Dateiauswahl „Von Mobilgerät hochladen“. Scannen Sie den QR-Code mit der Kamera Ihres Telefons. Klicken Sie auf „Bestätigen“, um das Gerät im Edge-Browser zu koppeln. Klicken Sie auf die Option „Datei hochladen“.

Eine eingehende Untersuchung des Speicherorts und Mechanismus von Golang-Variablen Eine eingehende Untersuchung des Speicherorts und Mechanismus von Golang-Variablen Feb 28, 2024 pm 09:45 PM

Titel: Eine eingehende Untersuchung des Speicherorts und -mechanismus von Golang-Variablen Da die Anwendung der Go-Sprache (Golang) in den Bereichen Cloud Computing, Big Data und künstliche Intelligenz allmählich zunimmt, ist es besonders wichtig, eine fundierte Untersuchung durchzuführen. Tiefes Verständnis des Speicherorts und Mechanismus von Golang-Variablen. In diesem Artikel werden wir die Speicherzuweisung, den Speicherort und die damit verbundenen Mechanismen von Variablen in Golang ausführlich besprechen. Durch spezifische Codebeispiele hilft es den Lesern, besser zu verstehen, wie Golang-Variablen im Speicher gespeichert und verwaltet werden. 1.Speicher von Golang-Variablen

Tiefes Verständnis der Mechanismen der Neuberechnung und Darstellung von CSS-Layouts Tiefes Verständnis der Mechanismen der Neuberechnung und Darstellung von CSS-Layouts Jan 26, 2024 am 09:11 AM

CSS-Reflow und Repaint sind sehr wichtige Konzepte bei der Optimierung der Webseitenleistung. Bei der Entwicklung von Webseiten kann uns das Verständnis der Funktionsweise dieser beiden Konzepte dabei helfen, die Reaktionsgeschwindigkeit und das Benutzererlebnis der Webseite zu verbessern. Dieser Artikel befasst sich mit den Mechanismen des CSS-Reflows und Repaints und stellt spezifische Codebeispiele bereit. 1. Was ist CSS-Reflow? Wenn sich die Sichtbarkeit, Größe oder Position von Elementen in der DOM-Struktur ändert, muss der Browser die CSS-Stile neu berechnen und anwenden und dann das Layout neu gestalten

Schritt-für-Schritt-Anleitung zum Bereinigen von Systemmüll in Windows 10 Schritt-für-Schritt-Anleitung zum Bereinigen von Systemmüll in Windows 10 Jul 13, 2023 pm 09:53 PM

Wenn einige Benutzer Computer verwenden, bereinigt das Win10-System Müll. Wie sollten wir das Problem lösen, wenn das Win10-System Müll bereinigt? Heutzutage wissen immer noch viele Benutzer nicht, wie sie mit der Beseitigung von Müll im Win10-System umgehen sollen. Werfen wir also einen Blick auf die Schritt-für-Schritt-Anleitung zum Bereinigen von Systemmüll in Win10 sehen. 1. Klicken Sie auf dem Computer-Desktop auf „Dieser PC“ und verwalten Sie ihn. 2. Wählen Sie Datenträgerverwaltung. 3. Wählen Sie den Datenträger aus, den Sie bereinigen möchten, klicken Sie mit der rechten Maustaste und wählen Sie Eigenschaften. 4. Klicken Sie unten auf der Seite auf die Schaltfläche „Datenträgerbereinigung“. 5. Wählen Sie in der angezeigten Benutzeroberfläche die Dateien aus, die Sie bereinigen möchten, klicken Sie auf „OK“ und klicken Sie auf „Dateien löschen“. Das Obige ist eine Schritt-für-Schritt-Anleitung zum Bereinigen von Systemmüll in Windows 10. Ich hoffe

Autoloading-Mechanismus in PHP Autoloading-Mechanismus in PHP Jun 18, 2023 pm 01:11 PM

Da die PHP-Sprache immer beliebter wird, müssen Entwickler immer mehr Klassen und Funktionen verwenden. Wenn ein Projekt größer wird, wird es unpraktisch, alle Abhängigkeiten manuell einzuführen. Zu diesem Zeitpunkt ist ein automatischer Lademechanismus erforderlich, um den Codeentwicklungs- und Wartungsprozess zu vereinfachen. Der automatische Lademechanismus ist eine Funktion der PHP-Sprache, die erforderliche Klassen und Schnittstellen zur Laufzeit automatisch laden und die manuelle Einführung von Klassendateien reduzieren kann. Auf diese Weise können sich Programmierer auf die Entwicklung von Code konzentrieren und Fehler und Zeitverschwendung reduzieren, die durch mühsame manuelle Klasseneinführung entstehen. Im Allgemeinen in PHP

Genshin Impact Wie man die verstreute unsterbliche Macht einsammelt Genshin Impact Wie man die verstreute unsterbliche Macht einsammelt Feb 01, 2024 pm 04:51 PM

In Genshin Impact stehen den Spielern viele Herausforderungen bevor, und jede Herausforderungsmission bringt unterschiedlichen Spaß. Allerdings ist es auch schwierig, diese Herausforderungen erfolgreich zu meistern und die verlorene unsterbliche Kraft einzusammeln. So erledigen Sie diese Aufgabe. Zunächst müssen die Spieler jeden Winkel der Spielwelt erkunden, um die verstreute Feenmacht zu finden. Diese magischen Kräfte können in Tälern, Höhlen oder anderen geheimen Orten verborgen sein. Nutzen Sie die Fähigkeiten und Fertigkeiten Ihres Charakters, um sie zu entdecken. Zweitens ist die Zusammenarbeit mit anderen Spielern eine großartige Möglichkeit, Missionen abzuschließen. Das Erkunden in einer Gruppe kann Ihre Chancen erhöhen, Xianli zu finden und die Aufgabe schnell zu erledigen. Verbünde dich mit Freunden oder anderen Spielern, um gemeinsam die Welt zu erkunden, einander zu helfen und mehr magische Kräfte zu sammeln. Nehmen Sie sich schließlich vor Feinden und Fallen in Acht. So schließen Sie den Prozess des Sammelns verstreuter unsterblicher Macht in Xun Yuanshen ab

See all articles