最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php引用計(jì)數(shù)器進(jìn)行垃圾收集機(jī)制介紹

 更新時(shí)間:2012年09月19日 17:31:44   作者:  
每一種計(jì)算機(jī)語(yǔ)言都有自己的自動(dòng)垃圾回收機(jī)制,讓程序員不必過(guò)分關(guān)心程序內(nèi)存分配,php也不例外,但是在面向?qū)ο缶幊?OOP)編程中,有些對(duì)象需要顯式的銷(xiāo)毀;防止程序執(zhí)行內(nèi)存溢出
PHP 有一個(gè)非常簡(jiǎn)單的垃圾收集器,它實(shí)際上將對(duì)不再位于內(nèi)存范圍(scope)中的對(duì)象進(jìn)行垃圾收集。垃圾收集的內(nèi)部方式是使用一個(gè)引用計(jì)數(shù)器,因此當(dāng)計(jì)數(shù)器達(dá)到 0 時(shí)(意味著對(duì)該對(duì)象的引用都不可用),對(duì)象將被當(dāng)作垃圾收集并從內(nèi)存中刪除。

每一種計(jì)算機(jī)語(yǔ)言都有自己的自動(dòng)垃圾回收機(jī)制,讓程序員不必過(guò)分關(guān)心程序內(nèi)存分配,php也不例外,但是在面向?qū)ο缶幊?OOP)編程中,有些對(duì)象需要顯式的銷(xiāo)毀;防止程序執(zhí)行內(nèi)存溢出。

一、PHP 垃圾回收機(jī)制(Garbage Collector 簡(jiǎn)稱GC)

在PHP中,沒(méi)有任何變量指向這個(gè)對(duì)象時(shí),這個(gè)對(duì)象就成為垃圾。PHP會(huì)將其在內(nèi)存中銷(xiāo)毀;這是PHP的GC垃圾處理機(jī)制,防止內(nèi)存溢出。

當(dāng)一個(gè)PHP線程結(jié)束時(shí),當(dāng)前占用的所有內(nèi)存空間都會(huì)被銷(xiāo)毀,當(dāng)前程序中所有對(duì)象同時(shí)被銷(xiāo)毀。GC進(jìn)程一般都跟著每起一個(gè)SESSION而開(kāi)始運(yùn)行的.gc目的是為了在session文件過(guò)期以后自動(dòng)銷(xiāo)毀刪除這些文件.

二、__destruct /unset

__destruct() 析構(gòu)函數(shù),是在垃圾對(duì)象被回收時(shí)執(zhí)行。
unset 銷(xiāo)毀的是指向?qū)ο蟮淖兞?,而不是這個(gè)對(duì)象。

三、 Session 與 GC

由于PHP的工作機(jī)制,它并沒(méi)有一個(gè)daemon線程來(lái)定期的掃描Session信息并判斷其是否失效,當(dāng)一個(gè)有效的請(qǐng)求發(fā)生時(shí),PHP 會(huì)根據(jù)全局變量 session.gc_probability和session.gc_divisor的值,來(lái)決定是否啟用一個(gè)GC, 在默認(rèn)情況下,session.gc_probability=1, session.gc_divisor =100也就是說(shuō)有1%的可能性啟動(dòng)GC(也就是說(shuō)100個(gè)請(qǐng)求中只有一個(gè)gc會(huì)伴隨100個(gè)中的某個(gè)請(qǐng)求而啟動(dòng)).

GC的工作就是掃描所有的Session信息,用當(dāng)前時(shí)間減去session最后修改的時(shí)間,同session.gc_maxlifetime參數(shù)進(jìn)行比較,如果生存時(shí)間超過(guò)gc_maxlifetime(默認(rèn)24分鐘),就將該session刪除。
但是,如果你Web服務(wù)器有多個(gè)站點(diǎn),多個(gè)站點(diǎn)時(shí),GC處理session可能會(huì)出現(xiàn)意想不到的結(jié)果,原因就是:GC在工作時(shí),并不會(huì)區(qū)分不同站點(diǎn)的session.

那么這個(gè)時(shí)候怎么解決呢?

1. 修改session.save_path,或使用session_save_path()讓每個(gè)站點(diǎn)的session保存到一個(gè)專(zhuān)用目錄,
2. 提供GC的啟動(dòng)率,自然,GC的啟動(dòng)率提高,系統(tǒng)的性能也會(huì)相應(yīng)減低,不推薦。
3. 在代碼中判斷當(dāng)前session的生存時(shí)間,利用session_destroy()刪除

相關(guān)文章

  • php實(shí)現(xiàn)圖片上傳、剪切功能

    php實(shí)現(xiàn)圖片上傳、剪切功能

    這篇文章主要為大家詳細(xì)介紹了php實(shí)現(xiàn)圖片上傳、剪切功能,具有一定的參考價(jià)值,感興趣的朋友可以參考一下
    2016-05-05
  • PHP中命令行工具的使用詳解

    PHP中命令行工具的使用詳解

    在PHP中,你可以使用命令行工具執(zhí)行一些任務(wù),比如運(yùn)行腳本、執(zhí)行定時(shí)任務(wù)等,本文主要為大家詳細(xì)介紹了PHP中使用命令行工具的幾種方法,希望對(duì)大家有所幫助
    2023-12-12
  • 修改Zend引擎實(shí)現(xiàn)PHP源碼加密的原理及實(shí)踐

    修改Zend引擎實(shí)現(xiàn)PHP源碼加密的原理及實(shí)踐

    來(lái)源:phphot PHP文件的源碼都是明文,這對(duì)于某些商業(yè)用途來(lái)說(shuō),并不適合。 因此考慮使用加密的手段保護(hù)源碼。 實(shí)在不耐煩等待zend出編譯器,而且編譯和加密本質(zhì)上不是一回事兒。自己動(dòng)手、開(kāi)始修改。
    2008-04-04
  • mac系統(tǒng)下安裝多個(gè)php并自由切換的方法詳解

    mac系統(tǒng)下安裝多個(gè)php并自由切換的方法詳解

    本文主要介紹了在mac系統(tǒng)下安裝多個(gè)php并自由切換的方法,文中先介紹了安裝多版本php的方法以及遇到相關(guān)錯(cuò)誤的解決方法,版本切換主要是利用php-version工具,php-version是一個(gè)幫助管理從brew安裝的php版本切換的工具,需要的朋友可以參考,下面來(lái)一起看看吧。
    2017-04-04
  • php fread函數(shù)使用方法總結(jié)

    php fread函數(shù)使用方法總結(jié)

    在本篇內(nèi)容里小編給大家分享了關(guān)于php fread函數(shù)使用方法以及相關(guān)知識(shí)點(diǎn),需要的朋友們跟著學(xué)習(xí)參考下。
    2019-05-05
  • PHP實(shí)現(xiàn)的簡(jiǎn)單排列組合算法應(yīng)用示例

    PHP實(shí)現(xiàn)的簡(jiǎn)單排列組合算法應(yīng)用示例

    這篇文章主要介紹了PHP實(shí)現(xiàn)的簡(jiǎn)單排列組合算法,結(jié)合具體應(yīng)用實(shí)例分析了排列組合算法的實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下
    2017-06-06
  • 詳解WordPress中的頭像緩存和代理中的緩存更新方法

    詳解WordPress中的頭像緩存和代理中的緩存更新方法

    這篇文章主要介紹了WordPress中的頭像緩存和代理中的緩存更新方法,分別針對(duì)Gravatar頭像的本地緩存以及代理中的css/js文件緩存更新,需要的朋友可以參考下
    2016-03-03
  • PHP生成不同顏色、不同大小的tag標(biāo)簽函數(shù)

    PHP生成不同顏色、不同大小的tag標(biāo)簽函數(shù)

    看別人網(wǎng)站上面的tag都是不同顏色,不同大小的tag標(biāo)簽非常不錯(cuò),這里就分享兩個(gè)函數(shù),方便需要的朋友
    2013-09-09
  • PHP中的strtr函數(shù)使用介紹(str_replace)

    PHP中的strtr函數(shù)使用介紹(str_replace)

    PHP的 strtr 函數(shù), 性能要比 str_replace 函數(shù)高, 可以代替 str_replace 來(lái)使用
    2011-10-10
  • php下pdo的mysql事務(wù)處理用法實(shí)例

    php下pdo的mysql事務(wù)處理用法實(shí)例

    這篇文章主要介紹了php下pdo的mysql事務(wù)處理用法,以實(shí)例形式分析了基于pdo的事物提交與回滾操作的用法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-12-12

最新評(píng)論

富民县| 晋中市| 鄂州市| 靖安县| 胶州市| 德兴市| 浮梁县| 锡林郭勒盟| 昭苏县| 双流县| 南昌县| 西吉县| 赤壁市| 霍州市| 保山市| 烟台市| 贞丰县| 五原县| 武隆县| 靖边县| 肥乡县| 闽侯县| 琼中| 济阳县| 攀枝花市| 永安市| 邵东县| 舟曲县| 桐庐县| 习水县| 思茅市| 长海县| 红安县| 安阳县| 湘乡市| 汝州市| 汝城县| 江孜县| 上林县| 东明县| 紫金县|