php的垃圾收集機制是怎樣的?解決方案
來源:互聯網
上載者:User
php的垃圾收集機制是怎樣的?
如題...
是網上搜得tencent筆試題...
------解決方案--------------------
只知道session的垃圾收集機制
------解決方案--------------------
不懂,幫頂,期待高手.
------解決方案--------------------
其他的手冊上說,主要是資源會產後垃圾問題,但PHP4後已有記數功能,哪果資源沒有被佔用,會自動釋放
------解決方案--------------------
在PHP中,沒有任何變數指向這個對象時,這個對象就成為垃圾。PHP會將其在記憶體中銷毀;這是PHP 的GC垃圾處理機制,防止記憶體溢出。
當一個 PHP線程結束時,當前佔用的所有記憶體空間都會被銷毀,當前程式中所有對象同時被銷毀。GC進程一般都跟著每起一個SESSION而開始啟動並執行.gc目的是為了在session檔案到期以後自動銷毀刪除這些檔案.
------解決方案--------------------
執行這些函數也可以起到回收作用
__destruct /unset/mysql_close
------解決方案--------------------
php的記憶體回收機制並不需要程式員考慮,
只要對不用的resource及時的關閉,對佔用資源大的變數及時unset就可以了。
------解決方案--------------------
php對session有明確的gc處理時間設定
session.gc_maxlifetime
------解決方案--------------------
個人覺得每個請求是一個進程吧
------解決方案--------------------
我留個痕迹
------解決方案--------------------
探討
引用:
當一個 PHP線程結束時,當前佔用的所有記憶體空間都會被銷毀,當前程式中所有對象同時被銷毀。GC進程一般都跟著每起一個SESSION而開始啟動並執行.gc目的是為了在session檔案到期以後自動銷毀刪除這些檔案.
線程? PHP還支援多線程?
是每一個 標籤搞出一個線程?
還是每一個檔案搞出一個線程?
還是根本只有一個線程?
高手回答下.謝
------解決方案--------------------
探討
php對session有明確的gc處理時間設定
session.gc_maxlifetime
------解決方案--------------------
對於記憶體佔用的垃圾處理嗎?
首先PHP作為指令碼語言是頁面結束即釋放變數所佔記憶體的。
如果說有垃圾,那就是整體的程式在架構使用中,會多次調用同一檔案等等造成的非單件模式等。
所以在出來的時候,必要的用_once 引用,在聲明類的時候使用單件模式。還有簡化邏輯等等。
而如果妄想讓PHP自己本身管理記憶體,進行垃圾管理。呵呵。好像PHP還辦不到,對於解構函式,ANDI在他的書裡寫的很明白。可有可無,不可置否。
而記憶體管理的東西一般都是傳統型程式更多去考慮的。PHP還非要搞一個記憶體管理的東西,哎,鞭長莫及吧。
------解決方案--------------------
學習
------解決方案--------------------
呵呵~~,學習拉!
------解決方案--------------------
不懂,看過JavaScript的記憶體回收機制,PHP還真沒注意過!
------解決方案--------------------
記得書上說用引用計數和寫時複製來管理記憶體,也是PHP的記憶體管理的主要機制
------解決方案--------------------
中國的招聘總是整那麼多的名詞,那麼多的理論,開發的時候還要看具體的能力的