exec () работает медленнее в PHP – такая же команда работает намного быстрее в интерактивном режиме

Может ли кто-нибудь сказать мне, почему функция exec() настолько медленна и непредсказуема на разных машинах в PHP?

В основном у меня есть исполняемый файл и вы хотите выполнить его через PHP:

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

Дело в том, что он выполняется намного дольше (по большому счету я имею в виду 3-4 иногда, как в 25 раз дольше), то та же команда из оболочки.

В дополнение к этому команда выполняется дольше с PHP на моем сервере, что сильнее (больше ОЗУ и более ГГц).

Итак, есть два вопроса:

  • Зачем?
  • что мне делать с этим?

PS Мне нужно это выполнить, потому что я не могу сделать то же самое с PHP

PS2 Ответ на вопрос @prodigitalson: он решает дифференциальное уравнение, но в основном независимо от того, что он делает, скорость намного медленнее. Я помню, что делал обработку изображений таким образом, и скорость была намного медленнее.

Проблема в том, что это медленнее, вероятно, потому, что ваш PHP-сервер должен перейти в оболочку для запуска вашей команды. Итак, что делает сервер PHP, это создать новую оболочку и вызвать команду в новой оболочке. Создание новой оболочки означает, что в большинстве систем создается новый поток. Таким образом, все эти вещи приводят к более длительному времени выполнения.

Иногда скрипт cgi может помочь с этими проблемами, но я не уверен, что это поможет здесь (потому что я действительно не знаю, что вы пытаетесь сделать в оболочке)