Возможности ускорения PHP-CLI скрипта? - PullRequest
1 голос
/ 08 марта 2012

Я написал скрипт PHP-CLI, который смешивает два аудиофайла (.WAV PCM) (с некоторыми математическими задачами), поэтому PHP должен анализировать тысячи (если не миллионы) сэмплов с unpack(), выполнять математические операции на них и сохраните их с помощью pack().

Теперь мне не нужна фактическая информация о том, как сделать микширование или что-то еще, как говорится в заголовке, я ищу возможности ускорить этот процесс, так как сценарию требуется 30 секунд времени обработки для производства 10 секунд аудио выход.

То, что я пытался:

  • Кэшируйте аудиофайлы в память и обрабатывайте их substr() вместо fseek() / fread(). Прирост производительности: 3 секунды.
  • Записать выходной файл в виде 5000-сэмплов. Прирост производительности: 10 секунд.

После этих оптимизаций у меня получилось примерно 17 секунд на обработку звука в течение 10 секунд. Что меня беспокоит, так это то, что другие инструменты могут выполнять простые аудио операции, такие как смешивание двух файлов в режиме реального времени или даже намного быстрее.

Еще одна идея, которая у меня была, была паралеллизация, но я воздерживался от этого из-за дополнительных проблем, которые могут возникнуть (например, вычисление правильных позиций поиска для вилок / потоков и других связанных вещей).

Так я что-то упустил или это действительно хорошая производительность для скрипта PHP-CLI?

1 Ответ

0 голосов
/ 30 марта 2012

Спасибо всем за этот вклад.

Я переписал эту вещь на C ++ и теперь могу выполнить вышеуказанные действия менее чем за секунду.

Я бы никогда не подумал, чторазница в скорости такая огромная (скомпилированное приложение примерно в 40 раз быстрее).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...