Pyramid で呼び出し可能なビューに対して NumPy を使用していくつかの配列計算を実行したいと思います。私が使用している配列は非常に大きい (3500x3500) ため、繰り返し使用するためにどこにロードするのが最適なのか疑問に思っています。
現在、私のアプリケーションは単一のページであり、呼び出し可能な単一のビューを使用しています。
アレイはディスクからロードされ、変更されません。
配列がスレッド間で共有できるものである場合は、アプリケーションの起動時にレジストリに格納できます ( config.registry['my_big_array'] = ??
)。共有できない場合は、おそらく別のプロセスで、常にデータをロードできるワーカーでキューイング システムを使用することをお勧めします。レジストリの値をスレッドローカルにし、変数に新しい配列がない場合は新しい配列を格納することでこれをハックできますが、スレッドごとに配列のコピーが作成されるため、これは本当に良い考えではありませんそれくらい大きいもの。
コード内の明らかな場所、つまり使用する必要がある場所 (あなたの見解では、私は推測しますか?) にロードして、パフォーマンスの問題があるかどうかを確認します。何が問題になるかを推測するよりも、実際の数値で作業する方がよいでしょう。あなたは通常、現実に驚くでしょう。
パフォーマンスの問題が発生した場合は、複数のスレッドのそれぞれにコピーが必要ないと仮定して、インポート後にグローバル スコープにロードしてみてください。それでもうまくいかない場合は、それを独自のモジュールに移動してインポートしてみてください。それでも解決しない場合は...どうなるかわかりません。