既然这个问题问的是php 是否适合 做后台常驻程序,我觉得还是应该给一个非常明确的答案,即 不适合
诚如其他答案中所说,php可以实现所有功能,内存问题也逐步变好,这是好事,但这并不是php适合做这件事的理由。要说可以实现功能,采用awk + nc也可以写一个常驻后台的web server且性能不一定比php差,但实际上绝不会有人采用这种geek的技术方案。
php不适合做这件事的理由有三:
- php的设计目的是方便的构建动态网页,并非后台服务,使用一种语言工具应当尽可能扬长避短,勉力而为之并不合适。
- php缺乏内建的线程和非阻塞机制,采用fork的非阻塞方案已经在好几年前被证明是低效的,并非现在最合适的技术方案
- php缺乏制作后台常驻程序的库、框架、成功案例,相比其他在这个领域发展了许多年的语言、或专门为制作后台程序而生的语言(如C、Java、Go等),php并不合适
不过,php就算不适合做后台常驻程序,也并不妨碍它在某些情况下使用,比如
- 没什么性能压力、对稳定性也没什么特别要求时
- 必须调用很多php写的库,不方便使用其他语言重写时
- 开发同学只会写php,又找不到更好的人来实现这个项目时
总之,能不使用php做后台程序就别用,如果用了且未来还会上量,最好早做用其他语言重写的打算吧。