質問

I amを実行しようとしたところ一部ロジックに複数のAppDomains。んでいるのはこの私は従来のコードである"国連の変更"とい性能向上による並列化の一部となる。問題はい複数のインスタンス内の1AppDomainいなものデータ構造に支障をきたすeachother.

私の実装が簡単です。に走りたいインスタンスが複数の"ExecutionHarness"クラスはそれぞれのAppDomainで作成したクラス"ExecutionHarnessProxy:MarshalByRefObject"のインスタンスを生成し、ひとりひとりのAppDomains(年ExecutionHarnessんからは継承しMarshalByRefObject).それだけに"ExecutionData[]データ"パラメータの"ExecutionHarnessProxy.Execute()の方法である。内容はこちらからご確認くださの呼び出"ExecutionHarness.Execute()"全てが良いです。

私はずしていただくために私の配列のデータは、プロキシクラスです。のExecutionDataクラスは、[直列化可能]の属性、機能的で全てが破壊も修復もおもしろくないため高速度ます。

  1. が入っているのか、それとも速いかったのserialize/直列化復元すが、自分の両側にAppDomain境?
  2. はこの時間って直列化?それとも、移動の直列化されたデータとAppDomains?
役に立ちましたか?

解決

これは、より多くの情報なしに知ることは困難ですが、あなたが記述しているものから、私はExecutionData配列が犯人である疑いがあると思います。

あなたがこのデータを必要とするメソッドを呼び出すたびに、潜在的に戻って同様のAppDomainにデータをシリアライズ、およびます。この配列が大きい場合、すなわち処理時間のかなりを食べることができます。

これは、データが各アプリケーションドメインに直接ロードすることができれば良くなる、とだけ自分のメインのAppDomainに戻って実行結果を渡します。あなたがのAppDomain間のデータの受け渡し配列を避けることができれば、あなたは可能性が劇的にプロセスをスピードアップされます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top