0

Pythonでマルチプロセッシングを使用してメッセージをデコードしています。私には20人の労働者がいます。メッセージをデコードするワーカー。メッセージ サイズ ~0.1 - 1MB をデコードした後。

def do_work(message):
    try:
        msg = pickle.loads(message[1])
        decoded_msg = codec.DECODE(Message(**msg).content)
    except:
        decoded_msg = "Unable to decode message"

約 2k から 5k のメッセージがあります。デコード処理は比較的高速です。しかし、ワーカーから結果を取得しようとしているとき:

decoded_msg.append(outQ.get())

それは信じられないほど遅いです。

私の質問は、受信プロセスが非常に遅い理由と、そのパフォーマンスを向上させる方法です。

4

1 に答える 1

0

decoded_msg はオブジェクトです。したがって、最初に文字列に変換し、次に outQ.get() で受け取り、再度オブジェクトとして作成すると、このプロセスは非常に高速になります。

于 2013-01-23T09:52:50.533 に答える