首頁 > 後端開發 > php教程 > php靜態方法什麼時候開始佔用記憶體呢?不同php進程會共用靜態方法嗎?

php靜態方法什麼時候開始佔用記憶體呢?不同php進程會共用靜態方法嗎?

WBOY
發布: 2016-09-15 11:15:07
原創
1592 人瀏覽過

php靜態方法是什麼時候開始佔用記憶體呢?

例如一個類別

<code>class Test {
    public static function test1(){}
    public static function test2(){}
    ...
}
</code>
登入後複製

我考慮瞭以下幾個情況:

  1. 在執行php程式碼的時候,就掃描靜態方法,不管有沒有include., 效率太低應該不會使用。

  2. 在我include 'Test.php'的時候,會不會掃描類,把靜態方法,載入進記憶體。這時候的話,應該就把所有方法都載入記憶體了。

  3. 假如2不成立,則是否在調用方法Test::test1();的時候,加載進內存,如果這時候加載的話,是僅加載當前方法,還是加載當前類所有的靜態方法?


不同php進程會共用靜態方法嗎?

如下圖

php靜態方法什麼時候開始佔用記憶體呢?不同php進程會共用靜態方法嗎?

這裡有位大神說了下Nginx和Php-fpm進程和線程:https://segmentfault.com/q/10...

如果是這樣的話,一個Php-fpm進程服務一個客戶端,但是如果並發太高,不會有很多進程嗎?按照進程通信來講,不同客戶端的請求,屬於不同的進程,應該不會互相影響,應該進程所佔內存中都有一份靜態方法的緩存,但是如果一個客戶端有多次請求的話,看文章說是阻塞的單線程模型,那應該每次請求都要等上次請求完成才開始執行,是否這時候會清楚靜態方法的緩存,還是繼續保存?如果清除的話,應該就不會共用靜態方法了。

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板