成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

javascript垃圾收集知識(shí)點(diǎn)概要(一)

Cheriselalala / 1047人閱讀

摘要:待分析下面我們來(lái)分析一下函數(shù)中局部變量的正常聲明周期。局部變量只在函數(shù)執(zhí)行的過(guò)程中存在。此時(shí),局部變量就沒(méi)有存在的必要了,因此可以釋放他們的內(nèi)存以供將來(lái)使用。

以下總結(jié)內(nèi)容來(lái)自《JavaScript高級(jí)程序》(第三版) 頁(yè)碼:78

  

JavaScript具有自動(dòng)垃圾收集機(jī)制,也就是說(shuō),執(zhí)行環(huán)境會(huì)負(fù)責(zé)管理代碼執(zhí)行過(guò)程中使用的內(nèi)存。而在C和C++之類(lèi)的語(yǔ)言中,開(kāi)發(fā)人員的一項(xiàng)基本任務(wù)就是手工跟蹤內(nèi)存的使用情況,這是造成許多問(wèn)題的一個(gè)根源。在編寫(xiě)Javascript程序時(shí),開(kāi)發(fā)人員不用再關(guān)心內(nèi)存使用問(wèn)題,所需內(nèi)存的分配以及無(wú)用內(nèi)存的回收完全實(shí)現(xiàn)了自動(dòng)管理。這種垃圾收集機(jī)制的原理其實(shí)很簡(jiǎn)單:找出那些不在繼續(xù)使用的變量,然后釋放其中所占用的內(nèi)存。為此,垃圾收集器會(huì)按照固定的時(shí)間間隔(或代碼執(zhí)行中預(yù)定的收集時(shí)間),周期性地執(zhí)行這一操作。

待分析...

  

下面我們來(lái)分析一下函數(shù)中局部變量的正常聲明周期。局部變量只在函數(shù)執(zhí)行的過(guò)程中存在。而在這個(gè)過(guò)程中,會(huì)為局部變量在棧(或堆)內(nèi)存上分配相應(yīng)的空間,以便存儲(chǔ)他們的值。然后在函數(shù)中使用這些變量,直至函數(shù)執(zhí)行借宿。此時(shí),局部變量就沒(méi)有存在的必要了,因此可以釋放他們的內(nèi)存以供將來(lái)使用。在這種情況下,很容易判斷變量是否還有存在的必要;但并非所有的情況下都這么容易就能得出結(jié)論。垃圾收集器必須跟蹤哪個(gè)變量有用哪個(gè)變量沒(méi)用,對(duì)于不在有用的變量打上標(biāo)記,以備將來(lái)收回其占用的內(nèi)存。用于標(biāo)識(shí)無(wú)用變量的策略可能會(huì)因?qū)崿F(xiàn)而異,但具體到瀏覽器中的實(shí)現(xiàn),則通常有兩個(gè)策略:標(biāo)記清除和引用計(jì)數(shù)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/85302.html

相關(guān)文章

  • javascript垃圾收集識(shí)點(diǎn)概要(二)

    摘要:標(biāo)記清除中最常用的垃圾收集方式是標(biāo)記清除。最后,垃圾收集器完成內(nèi)存清除工作,銷(xiāo)毀那些帶標(biāo)記的值并回收他們所占用的內(nèi)存空間。到年為止,和的實(shí)現(xiàn)使用的都是標(biāo)記清除式的垃圾收集策略或類(lèi)似的策略,只不過(guò)垃圾收集的時(shí)間間隔互有不同。 標(biāo)記清除 Javascript中最常用的垃圾收集方式是標(biāo)記清除(mark-and-sweep)。當(dāng)變量進(jìn)入環(huán)境(例如,在函數(shù)中聲明一個(gè)變量)時(shí),就將這個(gè)變量...

    TesterHome 評(píng)論0 收藏0
  • javascript垃圾收集識(shí)點(diǎn)概要(三)

    摘要:可是,引用計(jì)數(shù)導(dǎo)致的麻煩并未就此終結(jié)。其中,變量有一個(gè)名為的屬性指向?qū)ο蠖兞恳灿幸粋€(gè)屬性名為回指。當(dāng)垃圾收集器下次運(yùn)行時(shí),就會(huì)刪除這些值并回收它們所占用的內(nèi)存。 引用計(jì)數(shù) 另一種不太常見(jiàn)的垃圾收集策略叫做引用計(jì)數(shù)(reference counting)。引用計(jì)數(shù)的含義是跟蹤記錄每個(gè)值被引用的次數(shù)。當(dāng)聲明了一個(gè)變量并將一個(gè)應(yīng)用類(lèi)型值賦給該變量時(shí),則這個(gè)值的應(yīng)用次數(shù)就是1。如果同...

    jayce 評(píng)論0 收藏0
  • JavaScript如何工作:內(nèi)存管理+如何處理4個(gè)常見(jiàn)的內(nèi)存泄漏

    摘要:本系列的第一篇文章簡(jiǎn)單介紹了引擎運(yùn)行時(shí)間和堆棧的調(diào)用。編譯器將插入與操作系統(tǒng)交互的代碼,并申請(qǐng)存儲(chǔ)變量所需的堆棧字節(jié)數(shù)。當(dāng)函數(shù)調(diào)用其他函數(shù)時(shí),每個(gè)函數(shù)在調(diào)用堆棧時(shí)獲得自己的塊。因此,它不能為堆棧上的變量分配空間。 本系列的第一篇文章簡(jiǎn)單介紹了引擎、運(yùn)行時(shí)間和堆棧的調(diào)用。第二篇文章研究了谷歌V8 JavaScript引擎的內(nèi)部機(jī)制,并介紹了一些編寫(xiě)JavaScript代碼的技巧。 在這第...

    anRui 評(píng)論0 收藏0
  • 夯實(shí)基礎(chǔ)-作用域與閉包

    摘要:作用域分類(lèi)作用域共有兩種主要的工作模型。換句話(huà)說(shuō),作用域鏈?zhǔn)腔谡{(diào)用棧的,而不是代碼中的作用域嵌套。詞法作用域詞法作用域中,又可分為全局作用域,函數(shù)作用域和塊級(jí)作用域。 一篇鞏固基礎(chǔ)的文章,也可能是一系列的文章,梳理知識(shí)的遺漏點(diǎn),同時(shí)也探究很多理所當(dāng)然的事情背后的原理。 為什么探究基礎(chǔ)?因?yàn)槟悴蝗ッ嬖嚹憔筒恢阑A(chǔ)有多重要,或者是說(shuō)當(dāng)你的工作經(jīng)歷沒(méi)有亮點(diǎn)的時(shí)候,基礎(chǔ)就是檢驗(yàn)?zāi)愫脡牡囊豁?xiàng)...

    daydream 評(píng)論0 收藏0
  • Javascript難點(diǎn)知識(shí)運(yùn)用---遞歸,閉包,柯里化等

    摘要:作用域鏈的用途,是保證對(duì)執(zhí)行環(huán)境有權(quán)訪問(wèn)的所有變量和函數(shù)的有序訪問(wèn)。作用域鏈的前端,始終都是當(dāng)前執(zhí)行的代碼所在環(huán)境的變量對(duì)象。對(duì)語(yǔ)句來(lái)說(shuō),會(huì)將指定的對(duì)象添加到作用域鏈中。 前言 ps: 2018/05/13 經(jīng)指正之后發(fā)現(xiàn)惰性加載函數(shù)細(xì)節(jié)有問(wèn)題,已改正在這里也補(bǔ)充一下,這些都是根據(jù)自己理解寫(xiě)的例子,不一定說(shuō)的都對(duì),有些只能查看不能運(yùn)行的要謹(jǐn)慎,因?yàn)槲铱赡苤皇菍⒎椒ㄋ悸穼?xiě)出來(lái),沒(méi)有實(shí)際跑...

    hqman 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<