PHP Life Cyclesegmentfault
PHP
生命週期,一切從 SAPI
開始。多線程
PHP函數
內核
:處理請求、文件流、錯誤處理等相關操做。spa
Zend引擎
:將源文件轉換成機器語言,而後在虛擬機上運行它。線程
擴展層
:一組函數、類庫和流。code
單進程SAPI生命週期生命週期
一個 PHP
進程,在其生命週期內,經歷了數個階段。進程
MINIT
:每一個模塊都依次執行模塊初始化。涉及全局變量,常量,INI文件,類。RINIT
:當進程開始處理PHP
請求時,每一個模塊依次執行請求初始化。涉及請求變量、環境變量。Zend Engine
:編譯,執行。RSHUTDOWN
:當請求處理完畢,每一個模塊依次執行請求終止。Zend Engine
:垃圾收集 - 變量釋放。MSHUTDOWN
:當PHP
進程關閉時,與其關聯的模塊將依次從內存中銷燬,即模塊關閉。圖片
多線程SAPI生命週期內存
多線程的 SAPI 生命週期,MINIT
和 MSHUTDOWN
在進程的存活期內,只須要執行一次。
Apache的生命週期
Apache的請求處理流程