首頁 > 後端開發 > php教程 > 新鮮的一輪PHP面試問題總結

新鮮的一輪PHP面試問題總結

藏色散人
發布: 2023-04-10 11:56:01
轉載
3500 人瀏覽過

相關推薦:《2021年PHP面試題大匯總(收藏)

PHP面試問題總結

垃圾回收機制

每個PHP 變數存在一個叫zval 的結構體中,除了包含變數類型和值,還包括is_ref ( =true 指標變量,-false 普通變數),refcount (指向這個變數的個數), 當刪除元素導致refcount=0 時,這個變數被垃圾回收機制刪除

以下操作會導致refcount 永遠不為0, 可能導致記憶體溢位

$a = array( 'one' );
$a[] =& $a;
unset($a);
登入後複製

每當refcount 減一的時候,變數放到跟快取區,等待週期回收處理,每當根快取區存滿時(預設10000),就會執行回收演算法

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
登入後複製

存取日誌

access.log = log/$pool.access.log
登入後複製
OPCACHE 代码=>AST抽象语法树=>生成opcode缓存 之后还可以优化
opcache.enable=1    //默认关闭
opcache.memory_consumption=512//最大内存空间,单位MB
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=32531//缓存脚本数量
登入後複製
opcache.validate_timestamps=0//0不校验文件变动,文件改动,需要手动清除opcache
opcache.validate_timestamps=0//1校验文件变动,
opcache.revalidate_freq=10 //校验文件的时间间隔
opcache.save_comments=1//保留注释,?注解要用到?
opcache.fast_shutdown=0
##PHP7.4+ 预加载文件
opcache.preload=/home/rawphp/preload.php
opcache.preload_user=odin
登入後複製

#CGI 、 FASTCGI 、 PHPFPM 、 PHPCGI

CGI 是個協定,規定伺服器傳輸給動態腳本資料格式的協定

FASTCGI 提高CGI的效能,啟動一個master進程,解析php.ini文件,請求過來的時候直接複製一個worker進程出來,立即可以處理請求,而且也可以預先啟動pm.start_servers個worker等操作提高性能

PHPFPM 是一個實現了FASTCGI的程序

PHPCGI 只是一個CGI處理程序簡單解析請求返回結果,沒有進程管理等高階功能.

以上是新鮮的一輪PHP面試問題總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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