(有深度的php面试题)(腾讯php高级面试题)

1.awk 的去重命令。

awk ‘!a[$0]++’ filename

2.php-cgi,php-fpm,fastcgi 的区别?

cgi 一种协议
fastcgi 也是一种协议,是在 cgi 上做了优化
php-cgi php 对 webserver 提供的 cgi 协议的接口
php-fpm php 对 webserver 提供的 fastcgi 协议的接口

3.Nginx 如何处理请求和为什么高效。

client 发送请求,worker 会获取锁,获取到锁的 worker 进程继续处理请求,避免发生惊群现象。请求如果遇到阻塞,则挂起,worker 继续等待接受下一个请求或者等待阻塞的回调。此处用到的是 epoll 事件模型,如果有新请求或者阻塞回调了,通知 worker,继续往下执行,实现高并发。

4. 进程和线程

进程是计算机资源分配到最小单位,线程是计算机调度的最小单位。
进程间通信靠 TPC/IP 端口,线程间通信靠共享内存。
进程切换设计虚拟内存的切换,线程切换则共享所在进程的虚拟内存。线程切换需要在内核空间才可以完成,所以涉及到内核空间和用户空间的转换,协程切换只需要在用户态即可。

5. 虚拟内存

为了防止物理内存不够,所以设置了虚拟内存。
物理内存会根据最近经常使用的算法,将不经常使用的文件交换到内存里。

6.php 缓存机制,垃圾回收机制

php 会预先申请一大块内存,释放的时候也不是把内存回到系统,而是自己维护了起来。
当预先申请的内存不够时,php 会继续申请扩容,当释放时掉这些变量后,内存不会恢复到初始值,是因为少的内存被符号表占去了。
refcount(指向该值的变量数量)等于 0 时,当作垃圾回收。

7.cdn 原理。

浏览器访问 cdn 服务器,返回对应的 ip。浏览器继续访问该 ip

声明:我要去上班所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者飞飞程序员所有,原文出处。若您的权利被侵害,请联系删除。

本文标题:(有深度的php面试题)(腾讯php高级面试题)
本文链接:https://www.51qsb.cn/article/m8zqb.html

(0)
打赏微信扫一扫微信扫一扫QQ扫一扫QQ扫一扫
上一篇2023-03-21
下一篇2023-03-23

你可能还想知道

发表回复

登录后才能评论