- 相關(guān)推薦
關(guān)于深入PHP內存相關(guān)的功能特性詳解
可能有的讀者碰到過(guò)類(lèi)似下面的錯誤吧:
Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)這個(gè)錯誤的信息很明確,PHP已經(jīng)達到了允許使用的最大內存了,通常上來(lái)說(shuō)這很有可能是我們的程序編寫(xiě)的有些問(wèn)題。比如:一次性讀取超大的文件到內存中,或者出現超大的數組,或者在大循環(huán)中的沒(méi)有及時(shí)是放掉不再使用的變量,這些都有可能會(huì )造成內存占用過(guò)大而被終止。
PHP默認的最大內存使用大小是32M, 如果你真的需要使用超過(guò)32M的內存可以修改php.ini配置文件的如下配置:
memory_limit = 32M如果你無(wú)法修改php配置文件,同時(shí)你的PHP環(huán)境沒(méi)有禁用ini_set()函數,也可以動(dòng)態(tài)的修改最大的內存占用大小:
<?php ini_set("memory_limit", "128M");既然我們能動(dòng)態(tài)的調整最大的內存占用,那我們是否有辦法獲取目前的內存占用情況呢?答案是肯定的。
1.memory_get_usage(),這個(gè)函數的作用是獲取目前PHP腳本所用的內存大小。
2.memory_get_peak_usage(),這個(gè)函數的作用返回當前腳本到目前位置所占用的內存峰值,這樣就可能獲取到目前的腳本的內存需求情況。
單就PHP用戶(hù)空間提供的功能來(lái)說(shuō),我們似乎無(wú)法控制內存的使用,只能被動(dòng)的獲取內存的占用情況
那么當我們知道php引用計數,函數表,符號表,常量表等,這些信息都會(huì )占用內存的時(shí)候
我們可以有意的避免不必要的浪費內存,比如我們在項目中通常會(huì )使用autoload來(lái)避免一次性把不一定會(huì )使用的類(lèi)包含進(jìn)來(lái),而這些信息是會(huì )占用內存的
如果我們及時(shí)把不再使用的變量unset掉之后可能會(huì )釋放掉它所占用的空間
【深入PHP內存相關(guān)的功能特性詳解】相關(guān)文章:
PHP語(yǔ)言的特性盤(pán)點(diǎn)201703-29
PHP必備功能開(kāi)發(fā)03-22
php多進(jìn)程編程詳解201703-30
筆記本SDR內存參數詳解05-18
CAD怎么使用特性匹配功能12-25
詳解核心交換機的TRUNK功能02-26
教育碩士輔導之詳解教育的結構與功能12-03
功能性羽毛球鞋知識詳解03-20
淺析CSS3的新功能和新特性03-06