本篇文章給你們帶來的內容是關於php中的內存管理的介紹,有必定的參考價值,有須要的朋友能夠參考一下,但願對你有所幫助。php
1、php內存管理概述——Zend引擎編程
因爲計算機的內存由操做系統進行管理,因此普通應用程序是沒法直接對內存進行訪問的。服務器
應用程序只能向操做系統申請內存,一般的應用也是這麼作的,在須要的時候經過相似malloc之類的庫函數 向操做系統申請內存。編程語言
在一些對性能要求較高的應用場景下是須要頻繁的使用和釋放內存的, 好比Web服務器,編程語言等,因爲向操做系統申請內存空間會引起系統調用, 系統調用和普通的應用層函數調用性能差異很是大,由於系統調用會將CPU從用戶態切換到內核, 由於涉及到物理內存的操做,只有操做系統才能進行,而這種切換的成本是很是大的, 若是頻繁的在內核態和用戶態之間切換會產生性能問題。函數
鑑於系統調用的開銷,一些對性能有要求的應用一般會本身在用戶態進行內存管理, 例如第一次申請稍大的內存留着備用,而使用完釋放的內存並非立刻歸還給操做系統, 能夠將內存進行復用,這樣能夠避免屢次的內存申請和釋放所帶來的性能消耗。性能
PHP不須要顯式的對內存進行管理,這些工做都由Zend引擎進行管理了。PHP內部有一個內存管理體系, 它會自動將再也不使用的內存垃圾進行釋放。操作系統
2、php中查看與設置內存的相關參數與函數內存
配置內存大小:get
(1)php.ini中能夠更改配置memory_limit = 32M
(2)若環境中沒有禁用ini_set()函數,能夠經過此函數設置:ini_set("memory_limit", "128M");it
查看內存狀況:
(1)memory_get_usage(),這個函數的做用是獲取 目前PHP腳本所用的內存大小。(2)memory_get_peak_usage(),這個函數的做用返回 當前腳本到目前位置所佔用的內存峯值,這樣就可能獲取到目前的腳本的內存需求狀況。