PHP和C守护进程之间最有效的进程间调用

时间:2012-04-17 21:17:56

标签: php c interprocess

我有一个由PHP支持的REST API,它调用C程序。根据输入,C程序返回JSON数据,PHP读取输出并直接将其发送回客户端。

代码基本上是:

$command = $binary . " " . $parameters;
$output = shell_exec($command);
echo $output;

对于API的每次调用,PHP都会启动程序,进行一些处理并结束。

我想通过使C程序作为守护程序运行,然后将PHP后端调用到此守护程序中来提高效率。

另外,我可能正在迁移到Python Web框架,所以我想从客户端跨平台的东西。

我的直觉反应是简单地通过套接字来做,因为那时我可以将守护进程放在任何地方(在可预见的将来它将位于同一个Web服务器上,但我最终可以将它移出)。但套接字是否足够有效,还是有其他东西被认为是更好的做法?

1 个答案:

答案 0 :(得分:1)

如果不了解更多有关C程序的内容,很难回答这个问题。

绝对值得检查的一件事是creating a PHP extension

它不是跨平台的,但你可以编写类似Python或Ruby的扩展,而扩展部分实际上只是C程序的一个小骨架,而且它很容易编写。