溫馨提示×

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

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

PHP中有哪些內(nèi)存相關(guān)的功能

發(fā)布時(shí)間:2021-01-05 15:09:23 來(lái)源:億速云 閱讀:121 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

本篇文章給大家分享的是有關(guān)PHP中有哪些內(nèi)存相關(guān)的功能,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話(huà)不多說(shuō),跟著小編一起來(lái)看看吧。

可能有的讀者碰到過(guò)類(lèi)似下面的錯(cuò)誤吧:
Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)這個(gè)錯(cuò)誤的信息很明確,PHP已經(jīng)達(dá)到了允許使用的最大內(nèi)存了,通常上來(lái)說(shuō)這很有可能是我們的程序編寫(xiě)的有些問(wèn)題。比如:一次性讀取超大的文件到內(nèi)存中,或者出現(xiàn)超大的數(shù)組,或者在大循環(huán)中的沒(méi)有及時(shí)是放掉不再使用的變量,這些都有可能會(huì)造成內(nèi)存占用過(guò)大而被終止。

PHP默認(rèn)的最大內(nèi)存使用大小是32M, 如果你真的需要使用超過(guò)32M的內(nèi)存可以修改php.ini配置文件的如下配置:

memory_limit = 32M如果你無(wú)法修改php配置文件,同時(shí)你的PHP環(huán)境沒(méi)有禁用ini_set()函數(shù),也可以動(dòng)態(tài)的修改最大的內(nèi)存占用大小:

<?php ini_set("memory_limit", "128M");既然我們能動(dòng)態(tài)的調(diào)整最大的內(nèi)存占用,那我們是否有辦法獲取目前的內(nèi)存占用情況呢?答案是肯定的。

1.memory_get_usage(),這個(gè)函數(shù)的作用是獲取目前PHP腳本所用的內(nèi)存大小。
2.memory_get_peak_usage(),這個(gè)函數(shù)的作用返回當(dāng)前腳本到目前位置所占用的內(nèi)存峰值,這樣就可能獲取到目前的腳本的內(nèi)存需求情況。
單就PHP用戶(hù)空間提供的功能來(lái)說(shuō),我們似乎無(wú)法控制內(nèi)存的使用,只能被動(dòng)的獲取內(nèi)存的占用情況

那么當(dāng)我們知道php引用計(jì)數(shù),函數(shù)表,符號(hào)表,常量表等,這些信息都會(huì)占用內(nèi)存的時(shí)候

我們可以有意的避免不必要的浪費(fèi)內(nèi)存,比如我們?cè)陧?xiàng)目中通常會(huì)使用autoload來(lái)避免一次性把不一定會(huì)使用的類(lèi)包含進(jìn)來(lái),而這些信息是會(huì)占用內(nèi)存的

如果我們及時(shí)把不再使用的變量unset掉之后可能會(huì)釋放掉它所占用的空間

以上就是PHP中有哪些內(nèi)存相關(guān)的功能,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

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

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guā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