我目前使用php作为后台脚本的语言,很多人说php容易内存泄漏什么的,但是现在已经跑了一个月了状况良好。而且现在php已经大大改善了内存的回收机制,再加上它的简便性,实在找不到有什么理由拒绝使用。除了它不支持多线程以外,但是在一些性能要求不高的地方完全没啥问题。
我不知道我的这些考虑是否已经全面,是否有什么遗漏的地方。
我目前使用php作为后台脚本的语言,很多人说php容易内存泄漏什么的,但是现在已经跑了一个月了状况良好。而且现在php已经大大改善了内存的回收机制,再加上它的简便性,实在找不到有什么理由拒绝使用。除了它不支持多线程以外,但是在一些性能要求不高的地方完全没啥问题。
我不知道我的这些考虑是否已经全面,是否有什么遗漏的地方。
既然这个问题问的是php 是否适合 做后台常驻程序,我觉得还是应该给一个非常明确的答案,即 不适合
立即学习“PHP免费学习笔记(深入)”;
诚如其他答案中所说,php可以实现所有功能,内存问题也逐步变好,这是好事,但这并不是php适合做这件事的理由。要说可以实现功能,采用awk + nc也可以写一个常驻后台的web server且性能不一定比php差,但实际上绝不会有人采用这种geek的技术方案。
php不适合做这件事的理由有三:
不过,php就算不适合做后台常驻程序,也并不妨碍它在某些情况下使用,比如
总之,能不使用php做后台程序就别用,如果用了且未来还会上量,最好早做用其他语言重写的打算吧。
5.3以前, 应该循环引用问题, 不太适合. 5.3以后, 就没什么问题了.
不过一般, 我们都是结合crontab来做.
看到有人用PHP做server的。能否后台常驻,应该是取决于代码,而不是取决于语言。
既然用着舒服,又没有出现什么问题,没必要没事找事吧
不推荐的原因酱紫的。PHP的异常处理机制是个问题哦。
朋友网的webserver就是用php写的
@Summic 对这个回答持保留态度 ... 我自己用 php 实现过 webServer 和 socketServer ...
用到了 libevent 取代死循环 ... 用到了 shmop 缓存 ... 以及都是多进程 fork 的 ...
我用到了一切我能想到的优化 ... 但性能依然很烂 ...
新秀企业网站系统PHP版是一款简洁易用、方便二次开发的PHP企业网站系统。后台功能齐全,操作简便,可开启伪静态和纯静态模式,有利于SEO优化;前台可设置成同时显示多国语言,适合用于外贸企业建站;程序代码清晰简洁,可扩展性良好,安全可靠。新秀企业网站系统PHP版可免费下载使用,可用于商业用途,没有功能和时效限制,除版权标识外,所有代码都允许修改。后台功能简介:1.基本设置:基本信息,联系方式,网站设
6
socketServer 还好 ... 因为要维持长连接推送即可 ...
webServer 只能用呵呵来形容 ... 做做玩具还可以 ... 没办法真正用到生产环境去 ...
至于顶楼说的问题 ... 内存泄露什么的 ... 不敢说没有也不敢说有 ...
我只知道我的 php daemon 运行几个月 ... 也没见吃内存吃得多异常 ...
我完全没有在程序里刻意的调用 gc_collect_cycles() 或者 unset() 什么的 ...
运行也一切正常 ... 以及我觉得就 php 这种语言本身的特性而言 ...
只要你不直接去操作内存 ... 只是做普通操作的话 ... 想要内存泄露也难吧 ...
唯一需要注意的事情是 ... php 在做 daemon 的时候 ...
如果你连接了外部的服务 ... 切记要在再次打开连接之前关闭之前的连接!!
我见到的很多 php 程序员已经没这个习惯了 ... 写 daemon 需要注意的其实只有这一个 ...
基本就是这样 ... 总之 ... 嘛 ... 不管什么语言 ... 写得顺手就好了 ...
毕竟没有弱爆的语言只有弱爆的程序员 ...
其实就是代码的问题,正常的代码时不会出现内存泻露的。
后台脚本首先推荐使用shell,功能强大,和操作系统深度结合。
当然php也是可选的,耗CPU或者磁盘IO的程序推荐使用C或者Java来写会提高性能,当然糟糕的C代码可能比优秀的php效果差很多,适合就好。
适合做。而且开发效率高。只有最好的程序员,没有最好的语言。 Java,C/C++程序就不内存泄露了吗?恐怕更严重。 所以PHP也会有内存泄露。这都不是问题,只要有合理的机制保证可以回收内存即可。
swoole扩展里的max_request就是为了防止内存泄露的,运行超过一定次数后结束进程,重新创建一个新进程。
用事实说话:
毕竟没有弱爆的语言只有弱爆的程序员 ... 呵呵,
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号