这篇文章主要介绍了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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。