首頁  >  文章  >  後端開發  >  php中的記憶體管理的介紹

php中的記憶體管理的介紹

不言
不言轉載
2019-03-27 09:43:562859瀏覽

這篇文章帶給大家的內容是關於php中的記憶體管理的介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

一、php記憶體管理概述-Zend引擎 

由於電腦的記憶體由作業系統管理,所以普通應用程式是無法直接對記憶體進行存取的。

應用程式只能向作業系統申請內存,通常的應用程式也是這麼做的,在需要的時候透過類似malloc之類的函式庫函數 向作業系統申請記憶體。

在一些對效能要求較高的應用場景下是需要頻繁的使用和釋放記憶體的, 例如Web伺服器,程式語言等,由於向作業系統申請記憶體空間會引發系統調用, 系統調用和普通的應用層函數呼叫效能差異非常大,因為系統呼叫會將CPU從用戶態切換到內核, 因為涉及到物理記憶體的操作,只有作業系統才能進行,而這種切換的成本是非常大的, 如果頻繁的在內核態和用戶態之間切換會產生效能問題。

鑑於系統呼叫的開銷,一些對效能有要求的應用通常會自己在使用者狀態進行記憶體管理, 例如第一次申請稍大的記憶體留著備用,而使用完釋放的記憶體並不是馬上歸還給作業系統, 可以將記憶體進行重複使用,這樣可以避免多次的記憶體申請和釋放所帶來的效能消耗。

PHP不需要明確的對記憶體進行管理,這些工作都由Zend引擎進行管理了。 PHP內部有一個記憶體管理體系, 它會自動將不再使用的記憶體垃圾進行釋放。

二、php中查看與設定記憶體的相關參數與函數

配置記憶體大小:

(1)php.ini中可以更改配置memory_limit = 32M
(2)若環境中沒有停用ini_set()函數,可以透過此函數設定:ini_set("memory_limit", "128M");

查看記憶體狀況:

#(1) memory_get_usage(),這個函數的作用是取得目前PHP腳本所使用的記憶體大小。
(2)memory_get_peak_usage(),這個函數的作用返回 目前腳本到目前位置所佔用的記憶體峰值,這樣就可能取得到目前的腳本的記憶體需求情況。

這篇文章到這裡就已經全部結束了,更多其他精彩內容可以關注PHP中文網的php影片教學專欄!

#

以上是php中的記憶體管理的介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除