【问题标题】:exec() runs slow in PHP - same command runs much faster interactivelyexec() 在 PHP 中运行缓慢 - 相同的命令以交互方式运行得更快
【发布时间】:2012-11-17 00:52:22
【问题描述】:

谁能告诉我为什么exec() 函数在 PHP 中的不同机器上如此缓慢且时间不可预测?

基本上我有一些可执行文件,想通过 PHP 执行它:

$command = '/usr/pathToComman/myCommand -someParameters';
exec($command);

问题是它执行的时间比来自 shell 的相同命令要长得多(我的意思是 3-4 有时像 25 倍)。

除此之外,该命令从我的服务器上的 PHP 执行的时间更长,这更强大(更多 RAM 和更多 GHz)。

所以有两个问题:

  • 为什么?
  • 我该怎么办?

附:我需要这个执行,因为我不能用 PHP 做同样的事情

P.S.2 回答@prodigitalson 问题:它解决了微分方程,但基本上不管它做什么,速度都会慢得多。我记得用这种方式做一些图像处理,速度也慢了很多。

【问题讨论】:

标签: php performance exec


【解决方案1】:

这个速度较慢的问题可能是因为您的 PHP 服务器必须进入 shell 才能运行您的命令。所以 PHP 服务器所做的就是创建一个新的 shell 并在新的 shell 上调用命令。在大多数系统中,创建一个新的 shell 意味着创建一个新线程。 所以所有这些事情加在一起会导致执行时间更长。

有时 cgi 脚本可以帮助解决这些问题,但我不确定它在这里是否有帮助(因为我真的不知道你在 shell 上要做什么)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 2010-09-27
    • 2014-02-13
    • 2021-08-01
    相关资源
    最近更新 更多