2

私は大量のオーディオファイルのコレクションを処理するタスクを与えられました。各ファイルは、次の 4 つの手順で処理する必要があります。

  1. .wav から raw pcm への変換、
  2. リサンプリング、
  3. 量子化
  4. 3 つの音声コーデックのいずれかでコーディングします。

各ステップは、ファイルを入力として受け取り、ファイルを出力として返すプログラムに対応します。ファイルごとの処理に時間がかかるようです。手順を最適化するにはどうすればよいですか? たとえば、並列プログラミングか何か?ファイルの読み取り/書き込みにかかる時間を短縮するために RAM ディスクを使用しようとしましたが、改善されませんでした。(なぜ?) 私は Ubuntu Linux で Python で書いています。前もって感謝します。

4

1 に答える 1

0

ディスクの読み取りと書き込みはかなり遅いです。各プログラムの結果がディスクに書き込まれている場合は、それが発生しないようにすることをお勧めします。ソケットは私にはぴったりのようです。詳細はこちら:http ://docs.python.org/library/ipc.html

並列プログラムは素晴らしいです...私がこのトピックについてもっと多くを言うことができる前に、より多くの情報が必要です。Pythonがスレッドをそれほど効率的に処理していないことについて少し前に読んだことを覚えているので、それは最善の策ではないかもしれません。私が覚えている限り、タスクを切り替えることで並列処理をエミュレートするだけです。役に立たないので。これは、私がスレッディングを使用してから変更された可能性があります。一方、追加のプロセスは良い考えのように聞こえます。

曖昧さの少ない回答が必要な場合は、質問に詳細を記入してください。

編集

スレッドについて少し前に読んだことは次のようになります:http ://docs.python.org/2/glossary.html#term-global-interpreter-lock

于 2012-10-22T21:08:21.577 に答える