Javascript 垃圾收集机制介绍理解_基础知识
经常使用 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,在下一个垃圾收集周期时,会被回收并且释放其所占用的内存。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kayu keras ialah bahan sintetik yang penting di Stardew Valley Kami boleh mempunyai banyak kegunaan dalam permainan, jadi kami boleh menyimpannya dalam kehidupan seharian kami kepada cara untuk mendapatkan kayu keras di Monogatari jika perlu. Cara-cara mendapatkan kayu keras di Stardew Valley 1. Pergi ke hutan rahsia setiap hari untuk menggali tunggul pokok untuk mendapatkan kayu keras dengan cepat. 2. Terdapat peluang untuk mendapatkan benih mahogani dengan melombong tunggul pokok dan melawan raksasa di hutan rahsia. 3. Menanam benih di halaman rumah akan menghasilkan pokok mahogani. 4. Akhirnya, selepas melombong mahogani, anda boleh dengan cepat mendapatkan sejumlah besar kayu keras.

Prakata Sebagai pengguna Linux yang berminat, kami sering menghadapi keperluan untuk memasang CentOS atau CentOS7 pada telefon mudah alih. Walaupun telefon mudah alih bukanlah platform berjalan Linux yang terbaik, kadangkala kita perlu melakukan beberapa operasi atau kerja pembangunan berkaitan Linux pada telefon mudah alih. Dalam artikel ini, kami akan membincangkan secara terperinci cara memasang CentOS atau CentOS7 pada telefon anda. Memasang CentOS pada telefon bimbit Untuk memasang CentOS pada telefon mudah alih, pertama sekali kita memerlukan telefon bimbit yang menyokong teknologi virtualisasi, seperti telefon bimbit yang menyokong sistem Android Kemudian kita boleh menggunakan aplikasi emulator terminal seperti Termux untuk mensimulasikan Linux persekitaran. Dalam Termux, kita boleh Menggunakan pengurus pakej untuk memasang CentOS

Microsoft telah menambah ciri baharu pada pelayar Edge pada Windows 11/10 dalam versi stabil terkini, iaitu "Muat Naik Mudah Alih". Pengguna kini boleh memuat naik fail terus dari telefon mereka melalui pelayar Edge, dan ciri ini berfungsi pada hampir semua tapak web tanpa sekatan format fail. Pengenalan ciri ini menyediakan pengguna kaedah muat naik yang lebih mudah, menjadikannya lebih cekap untuk mengurus dan berkongsi fail apabila menggunakan pelayar Edge. Cara menggunakan ciri "Muat Naik Mudah Alih": Buka penyemak imbas Edge, klik pilihan "Muat naik" pada mana-mana tapak web, dan kemudian pilih "Muat naik dari mudah alih" dalam pemilih fail. Gunakan kamera telefon anda untuk mengimbas kod QR. Klik "Sahkan" untuk memasangkan peranti dalam penyemak imbas Edge. Klik pada pilihan "Muat Naik Fail".

Tajuk: Penerokaan mendalam tentang lokasi storan dan mekanisme pembolehubah Golang Memandangkan aplikasi bahasa Go (Golang) semakin meningkat dalam bidang pengkomputeran awan, data besar dan kecerdasan buatan, adalah penting untuk mempunyai in- pemahaman mendalam tentang lokasi penyimpanan dan mekanisme pembolehubah Golang. Dalam artikel ini, kita akan membincangkan secara terperinci peruntukan memori, lokasi penyimpanan dan mekanisme berkaitan pembolehubah di Golang. Melalui contoh kod khusus, ia membantu pembaca lebih memahami cara pembolehubah Golang disimpan dan diurus dalam ingatan. 1.Memori pembolehubah Golang

Aliran semula dan cat semula CSS adalah konsep yang sangat penting dalam pengoptimuman prestasi halaman web. Apabila membangunkan halaman web, memahami cara kedua-dua konsep ini berfungsi boleh membantu kami meningkatkan kelajuan tindak balas dan pengalaman pengguna halaman web. Artikel ini akan menyelidiki mekanik aliran semula dan mengecat semula CSS, serta memberikan contoh kod khusus. 1. Apakah aliran semula CSS? Apabila keterlihatan, saiz atau kedudukan elemen dalam struktur DOM berubah, penyemak imbas perlu mengira semula dan menggunakan gaya CSS dan kemudian susun atur semula

Apabila sesetengah pengguna menggunakan komputer, sistem Win10 membersihkan sampah Apabila menghadapi sistem Win10 membersihkan sampah, bagaimana kita harus menyelesaikannya? Pada masa kini, masih ramai pengguna yang tidak tahu bagaimana untuk menangani situasi membersihkan sampah dalam sistem Win10, jadi mari kita lihat tutorial langkah demi langkah membersihkan sampah sistem dalam Win10 tengok. 1. Pada desktop komputer, klik "PC ini" dan urus. 2. Pilih Pengurusan Cakera 3. Pilih cakera yang anda ingin bersihkan, klik kanan dan pilih Properties. 4. Klik butang "Pembersihan Cakera" di bahagian bawah halaman 5. Dalam antara muka yang muncul, pilih fail yang ingin anda bersihkan, klik "OK", dan klik "Padam Fail". Di atas adalah tutorial langkah demi langkah tentang cara membersihkan sampah sistem dalam Windows 10. Saya harap

Apabila bahasa PHP menjadi semakin popular, pembangun perlu menggunakan lebih banyak kelas dan fungsi. Apabila projek berkembang dalam saiz, memperkenalkan semua kebergantungan secara manual menjadi tidak praktikal. Pada masa ini, mekanisme pemuatan automatik diperlukan untuk memudahkan proses pembangunan dan penyelenggaraan kod. Mekanisme pemuatan automatik ialah ciri bahasa PHP yang boleh memuatkan kelas dan antara muka yang diperlukan secara automatik pada masa jalan dan mengurangkan pengenalan fail kelas manual. Dengan cara ini, pengaturcara boleh menumpukan pada membangunkan kod dan mengurangkan ralat dan pembaziran masa yang disebabkan oleh pengenalan kelas manual yang membosankan. Dalam PHP, secara amnya

Dalam Genshin Impact, pemain akan menghadapi banyak cabaran, dan setiap misi cabaran membawa keseronokan yang berbeza. Walau bagaimanapun, sukar juga untuk berjaya menyelesaikan cabaran ini dan mengumpul kuasa abadi yang hilang. Berikut ialah cara untuk menyelesaikan tugasan ini. Pertama sekali, pemain perlu meneroka setiap sudut dunia permainan untuk mencari kuasa dongeng yang bertaburan. Kuasa ajaib ini mungkin tersembunyi di lembah, gua, atau tempat rahsia lain. Gunakan kemahiran dan kebolehan watak anda untuk membantu anda menemuinya. Kedua, bekerjasama dengan pemain lain adalah cara terbaik untuk menyelesaikan misi. Meneroka dalam kumpulan boleh meningkatkan peluang anda untuk mencari Xianli dan menyelesaikan tugas dengan cepat. Bekerjasama dengan rakan atau pemain lain untuk meneroka dunia bersama-sama, membantu antara satu sama lain dan mengumpul lebih banyak kuasa dongeng. Akhirnya, berhati-hati dengan musuh dan perangkap. Bagaimana untuk menyelesaikan proses mengumpul kuasa abadi yang bertaburan di Xun Yuanshen
