谁能告诉我为什么 exec()
函数在 PHP 的不同机器上如此缓慢且时间不可预测?
基本上我有一些可执行文件并想通过 PHP 执行它:
$command = '/usr/pathToComman/myCommand -someParameters';
exec($command);
问题是它执行的时间比来自 shell 的相同命令长得多(我的意思是 3-4 有时长 25 倍)。
除此之外,命令从我服务器上的 PHP 执行的时间更长,更强大(更多 RAM 和更多 GHz)。
所以有两个问题:
- 为什么?
- 我该怎么办?
附言我需要这个执行,因为我不能用 PHP 做同样的事情
P.S.2 回答@prodigitalson 的问题:解微分方程,但基本上无论做什么,速度都慢了很多。我记得用这种方式做过一些图像处理,速度也慢了很多。
最佳答案
之所以速度较慢,可能是因为您的 PHP 服务器必须转到 shell 才能运行您的命令。那么 PHP 服务器所做的就是创建一个新的 shell 并在新的 shell 上调用命令。在大多数系统中创建一个新的 shell 意味着创建一个新的线程。 因此,所有这些因素共同导致执行时间更长。
有时 cgi 脚本可以帮助解决这些问题,但我不确定它在这里是否有帮助(因为我真的不知道你想在 shell 上做什么)
关于php - exec() 在 PHP 中运行缓慢 - 相同的命令以交互方式运行得更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13426541/