我的任务是处理大量的音频文件。每个文件必须分四步处理:
- 从 .wav 转换为原始 pcm,
- 重采样,
- 量化
- 使用三个语音编解码器之一进行编码。
每个步骤对应一个程序,将文件作为输入并返回文件作为输出。逐个文件处理似乎需要很长时间。如何优化程序?例如并行编程之类的?我试图利用 ramdisk 来减少文件读取/写入所花费的时间,但它并没有改善。(为什么?)我在 Ubuntu Linux 下用 Python 编写。提前致谢。
我的任务是处理大量的音频文件。每个文件必须分四步处理:
每个步骤对应一个程序,将文件作为输入并返回文件作为输出。逐个文件处理似乎需要很长时间。如何优化程序?例如并行编程之类的?我试图利用 ramdisk 来减少文件读取/写入所花费的时间,但它并没有改善。(为什么?)我在 Ubuntu Linux 下用 Python 编写。提前致谢。
读写磁盘非常慢。如果每个程序结果都被写入磁盘,那么最好阻止这种情况发生。插座对我来说似乎很合适。在这里阅读更多:http: //docs.python.org/library/ipc.html
并行程序很好......需要更多信息才能在这个话题上说更多。我记得前段时间读过关于 python 处理线程的效率不高的文章,所以这可能不是最好的选择。据我记得,它只是通过在任务之间切换来模拟并行处理,这真是太快了。所以这无济于事。自从我使用线程以来,这可能已经改变了……另一方面,额外的进程听起来是个好主意。
如果您需要一个不那么模糊的答案,请在您的问题中提供具体信息。
编辑
我不久前读到的关于线程的内容如下所示:http ://docs.python.org/2/glossary.html#term-global-interpreter-lock