加速PHP-CLI脚本的可能性?

时间:2012-03-08 14:02:17

标签: php performance command-line-interface audio-processing

我编写了一个PHP-CLI脚本,它混合了两个音频(.WAV PCM)文件(涉及一些数学),因此PHP需要使用unpack()来处理数千个(如果不是数百万个)样本,做数学在他们身上并使用pack()保存。

现在,我不需要关于如何进行混音或任何事情的实际信息,正如标题所说,我正在寻找可能加速这个过程的可能性,因为脚本需要30秒的处理时间来产生10秒的音频输出

我尝试的事情:

  • 将音频文件缓存到内存中并使用substr()代替fseek() / fread()进行处理。性能提升:3秒。
  • 以5000个样本块的形式写出输出文件。性能提升:10秒。

在这些优化之后,我以大约17秒的处理时间结束了10秒的音频输出。让我烦恼的是,其他工具可以进行简单的音频操作,比如实时混合两个文件甚至更快。

我的另一个想法是paralellization,但由于会出现额外的问题(比如为叉/线程和其他相关事物计算正确的搜索位置),我不再这样做。

我错过了什么东西,或者这对PHP-CLI脚本来说实际上是不错的表现?

1 个答案:

答案 0 :(得分:0)

感谢大家对此的意见。

我用C ++重写了这个东西,现在可以在不到一秒的时间内执行上述操作。

我从来没有想过速度差异很大(编译后的应用程序速度快了40倍)。