我希望创建一个后台进程,并被告知这些进程通常是用C或类似的语言编写的。我最近发现PHP可用于创建守护程序,如果我应该以这种方式使用PHP,我希望得到一些建议。
这是我对守护程序的要求。
我不确定我还能提供什么帮助做出这个决定。只是要补充一点,我之前没有做过C。仅Java和PHP以及基本的bash脚本。
它甚至对性能产生很大的影响吗?
请允许我的无知,我正在学习!:)
谢谢大家
正如其他人指出的那样,各种版本的PHP的垃圾收集器都有问题。当然,如果您知道自己的版本没有此类问题,则可以消除该问题。关键是,您 不 知道(确定),直到编写守护程序并通过valgrind运行它以查看已安装的PHP是否在任何给定的机器上泄漏。因此,一方面,您可能只是为了发现Zend认为已修复的问题仍然是bug,或者正在处理的是PHP的稍旧版本或某些扩展名而编写它。讨厌
另一个问题是信号有问题。以我的经验,信号处理程序并非总是可以用PHP正确输入,尤其是当信号排队而不是合并时。对于您来说,这可能不是问题,即,如果您只需要处理SIGINT / SIGUSR1 / SIGUSR2 / SIGHUP。
因此,我建议:
如果守护程序很简单,请继续使用PHP。如果它看起来变得相当复杂,或者分配了很多内存,则可以在用PHP制作原型后考虑使用C编写它。
我是一个相当顽固的C人。但是,我发现使用PHP快速完成一些工作没有错(除了我解释的情况)。我还认为使用PHP为可能在以后用C重写的原型制作东西没有错。例如,如果使用PHP,则与使用C中的其他接口管理回调相比,处理数据库的工作将简单得多。在这种情况下,如果“一次性完成”,您肯定会更快地完成它。