私は、単一の不変のデータ構造で多数の数値を扱うアプリケーションで作業しています。 (非常に大きな配列のコレクション、本質的には大きな行列です。典型的なサイズは、200列×100,000行の2倍となります)。多くの計算をさまざまな方法で並列化できます。私は、Akka問題に取り組むアクターモデル。Akkaの俳優間で大きな不変のデータを共有またはアクセスする
私はこの行列(またはその一部)をメッセージに渡す必要があることを心配しています。なぜなら、それにはたくさんのコピーとシリアライゼーションが必要だと思うからです。
私はこの問題を熟考していますか? (つまり、スーパーバイザーアクターがこの行列の配列の一部を従属オブジェクトに渡した場合、Akka実行時は参照として渡すだけのスマートなので、すべてを同じJVM上に保持していると仮定します渡すメッセージ?)
私は、質問をする簡単な方法は、大規模なデータ構造がメッセージに渡される状況を避けるべきですか?
繰り返してください:問題のこのデータは完全に完全に変更できません。それは決して変化しません。
ありがとうございました。私は極端な場合にはそうであると考えました。しかし、相対的な問題は、「非常に大きな」という意味です。私のアプリケーションでは、サイズがそれぞれ10〜1000万の倍数(または時には整数)の配列を約10個集めて考えました。小さい方では数メガバイトのように見えるので、それは大丈夫だと思っていますが、上限のしきい値は何か分かりません。重要なのは、スピードは重要なアーキテクチャ上の要素であるということです。 –