私は、大量の画像をバッチで読み取り (500 枚の画像としましょう)、それを numpy 配列に格納する python プログラムに取り組んでいます。
現在はシングル スレッドであり、IO は非常に高速です。多くの時間がかかる部分は、numpy 配列の作成とその上での処理です。
multiprocessing モジュールを使用することで、別のプロセスで配列を読み込んで作成することができます。しかし、メインスレッドがそれらのデータにアクセスできるようにするのに問題があります。
私が試してみました:
1: multiprocessing.queues の使用: 非常に遅いです。これは pickle と unpickle が多くの時間を浪費していると思います。大きな numpy 配列の酸洗いと酸洗い解除には、かなりの時間がかかります。
2: Manager.list() の使用: キューよりも高速ですが、メイン スレッドでアクセスしようとすると、それでも非常に低速です。リストを反復処理して何もしないだけでも、アイテムごとに 2 秒かかります。なぜそんなに時間がかかるのか理解できません。
助言がありますか ?ありがとう。