溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP中的Copy on write表示什么

發(fā)布時(shí)間:2020-07-01 18:16:45 來源:億速云 閱讀:187 作者:Leah 欄目:編程語言

PHP中的Copy on write表示什么?針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

PHP中Copy on write的意思是:

寫時(shí)復(fù)制(Copy-on-Write,也縮寫為COW),顧名思義,就是在寫入時(shí)才真正復(fù)制一份內(nèi)存進(jìn)行修改。 COW最早應(yīng)用在*nix系統(tǒng)中對(duì)線程與內(nèi)存使用的優(yōu)化,后面廣泛的被使用在各種編程語言中,如C++的STL等。

在PHP內(nèi)核中,COW也是主要的內(nèi)存優(yōu)化手段。 在前面關(guān)于變量和內(nèi)存的討論中,引用計(jì)數(shù)對(duì)變量的銷毀與回收中起著至關(guān)重要的標(biāo)識(shí)作用。 引用計(jì)數(shù)存在的意義,就是為了使得COW可以正常運(yùn)作,從而實(shí)現(xiàn)對(duì)內(nèi)存的優(yōu)化使用。

寫時(shí)復(fù)制優(yōu)點(diǎn):

是通過賦值的方式賦值給變量時(shí)不會(huì)申請(qǐng)新內(nèi)存來存放新變量所保存的值,而是簡(jiǎn)單的通過一個(gè)計(jì)數(shù)器來共用內(nèi)存,只有在其中的一個(gè)引用指向變量的值發(fā)生變化時(shí)才申請(qǐng)新空間來保存值內(nèi)容以減少對(duì)內(nèi)存的占用。

從PHP底層基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)來看

ref_count和is_ref是定義于zval結(jié)構(gòu)體中;

is_ref標(biāo)識(shí)是不是用戶使用 & 的強(qiáng)制引用;

ref_count是引用計(jì)數(shù),用于標(biāo)識(shí)此zval被多少個(gè)變量引用,即寫時(shí)復(fù)制的自動(dòng)引用,為0時(shí)會(huì)被銷毀。

關(guān)于PHP中的Copy on write表示什么問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI