使用PHP exec()加速后端的可行性

won*_*ton 5 php shell exec php-java-bridge

我从PHP的exec()性能中了解到,运行exec()会产生开销,但是在大型程序或网站中,使用另一种语言编写后端的部分并让PHP使用exec调用程序是不是有益处?

例如,我用大量的字符串操作编写/运行了一个测试 - PHP占用了2.3秒而Java占用了.52而C++占用了.33.速度差异已经很明显了.如果我多线程操作,时间可能会加快.我还发现可以通过类似的方式实现并行性

exec("./largeoperation > mydir/$dirname.data &"); 
//or
exec('java Backend > /dev/null 2>&1 &');
Run Code Online (Sandbox Code Playgroud)

除了需要用另一种语言编写代码之外,除了需要用另一种语言编写代码之外,我还没有明白为什么我不应该将后端的更多部分转移到用不同语言编写的更快的程序中.此外,我知道像使用Php-Java Bridge这样的桥梁的存在,但我不确定使用它会比简单的exec()快得多.有没有人有关于exec()的更多细节?

Cha*_*les 4

虽然您可以使用 和 朋友将工作分配给其他程序exec,但您要做的事情最好使用消息队列系统来完成。精心设计的消息队列将允许您用您需要的任何语言编写工作程序。当您需要使用另一种语言、环境或服务器执行某些操作时,它们是一个很好的解决方案。

很多消息队列,但我是Gearman的忠实粉丝。它是由为我们带来 memcached 的同一个人构建的。看一下PECL 扩展