2010-12-15 11 views
1

私は、多くのC#静的変数を含むレガシーコードをWCFサービスにラップする必要があるプロジェクトに取り組んでいます。あなたが想像することができるように、これは、要求が国家レベルでなくてはならないWCFサービスの悪夢です。CreateInstanceFromAndUnwrap速度と最適化

私が思いつくことができる最高の解決策は、別のAppDomainでレガシーコードを実行してスレッドセーフであり、これを達成するためにCreateInstanceFromAndUnwrap()を使用することです。

コードが正常に動作していますが、コードが実行される前にすべての20個以上のDLLをAppDomainに再ロードする必要があるため、かなり遅いです。

誰かがCreateInstanceFromAndUnwrap()を最適化する方法を知っていますか?たとえば、クラスをロードせずにすべてのアセンブリをプリロードできて、静的変数が要求が入るたびにリセットされますか?

乾杯、あなたが求めている正確に何を行うことができる方法を知るの オスカー

答えて

0

ショート、少なくとも私は問題に私の考えを共有したい:

  • あなたはセッション状態のために行くことができます?これはひどくうまくスケールされませんが、セッションごとにAppDomainを読み込むことができれば、良い応答性を得ることができます。これは、あなたが持っている同時ユーザー数に依存します。
  • AppDomainのプールとして機能する他のボックスを用意して、AppDomainを作成して要求を処理するコストを分けることはできますか?
  • すべての統計がどのようにまとまっているかは決定的なものですか?彼らはおそらく遅延ロードですか?たぶん、いくつかのリフレクションや動的メソッドを使用して、リクエスト後に静的状態を消去することができます。
関連する問題