这篇文章主要介绍了PHP面试问题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。垃圾回收机制每个 php 变量存在一个叫 zval 的结构体中,除了包含变量类型和值,还包
这篇文章主要介绍了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.slowrequest_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面试问题有哪些”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网PHP编程频道,更多相关知识等着你来学习!
--结束END--
本文标题: PHP面试问题有哪些
本文链接: https://lsjlt.com/news/298974.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0