您好,登錄后才能下訂單哦!
這篇文章主要介紹了PHP面試問題有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
垃圾回收機制
每個 PHP 變量存在一個叫 zval 的結構體中,除了包含變量類型和值,還包括 is_ref (=true 指針變量,-false 普通變量),refcount (指向這個變量的個數), 當刪除元素導致 refcount=0 時,這個變量被垃圾回收機制刪除
以下操作會導致 refcount 永遠不為 0, 可能導致內存溢出。
$a = array( 'one' ); $a[] =& $a; unset($a);
FPM調優
pm = dynamic : 靈活模式,子進程的數量是根據以下指令來動態生成的,默認是這個模式: pm.max_children,//最大子進程數 pm.start_servers,//初始化啟動進程數 pm.min_spare_servers,//最低閑置進程數 pm.max_sqare_servers//最高閑置進程數
pm = ondemand: 死魚模式,這個模式只有請求來了之后才會啟動子進程,幾乎每次都要等待一次啟動worker的時間,比較適合虛擬主機模式,pm.process_idle_timeout秒后殺掉子進程
pm = static: 最大馬力模式,子進程的數量是由pm.max_children指令來確定的,一直以最大子進程運作,很耗內存,但是反應賊快,服務器內存賊大的可以用這個,如果你服務器有8G以上,一個進程按20M算,100個進程加起來才2G
慢日志
slowlog = /usr/local/var/log/php-fpm.log.slow request_slowlog_timeout = 15s
錯誤日志
error_log = /usr/local/var/log/php-fpm.log
CGI 、FASTCGI 、 PHPFPM 、 PHPCGI
CGI 是個協議,規定服務器傳輸給動態腳本數據格式的協議
FASTCGI 提高CGI的性能,啟動一個master進程,解析php.ini文件,請求過來的時候直接復制一個worker進程出來,立即可以處理請求,而且也可以預先啟動pm.start_servers個worker等操作提高性能
PHPFPM 是一個實現了FASTCGI的程序
PHPCGI 只是一個CGI處理程序 簡單解析請求返回結果,沒有進程管理等高級功能.
感謝你能夠認真閱讀完這篇文章,希望小編分享的“PHP面試問題有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。