1

我编写了一个 PHP-CLI 脚本,它混合了两个音频 (.WAV PCM) 文件(涉及一些数学运算),因此 PHP 需要unpack()pack().

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

我尝试过的事情:

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

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

我的另一个想法是并行化,但由于会发生额外的问题(例如计算叉/线程和其他相关事物的正确查找位置),我没有这样做。

那么我是否遗漏了一些东西,或者这对于 PHP-CLI 脚本来说实际上是一个很好的性能?

4

1 回答 1

0

感谢大家对此的意见。

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

我从没想过速度差异如此之大(编译后的应用程序要快 40 倍)。

于 2012-03-30T09:42:14.043 回答