- PR -

AssemblyクラスによってロードされたDLL内クラス内メソッドの動作パフォーマンスについて

1
投稿者投稿内容
こんどる
常連さん
会議室デビュー日: 2004/05/10
投稿数: 30
投稿日時: 2004-10-01 18:41
こんにちは、こんどるです。

C#で開発を行っております。
早速質問なのですが、現在あるDLL内のクラスを
Assemblyクラスを用いて、DLLファイルのパスからロードしてきて呼び出しています。
記述は

Assembly assembly = Assembly.LoadFrom("DLLファイルパス");
Type[] type = assembly.GetTypes();
AbstractBusinessRule container = (AbstractBusinessRule)assembly.CreateInstance(type[0].ToString());

container.呼びたいメソッド();

という感じです。

このメソッド内ではある繰り返し処理を行っているのですが、
パフォーマンスを計測してみたところ、
その繰り返し処理が回数が増えるにしたがってどんどん処理時間が長くなっているようなのです。

なぜAssemblyクラスを用いた場合、、、、と書いたかといいますと
まったく同じDLLをVisualStudioで参照設定してそれを実行するようにすると
この現象はおきないのです。

ループ内で行っている具体的な内容の、どの部分で起こっているのかは
突き止められていないのですが、主にXmlDocumentに関する処理を行っています。

なぜ、Assemblyクラスで読み込んだ場合だけ、メソッド内の繰り返し処理が
どんどん遅くなってしまうのでしょうか。
何か、考えられることはありますでしょうか。
思い当たることなどありましたら、是非教えて頂きたく思います。
宜しくお願いします。



1

スキルアップ/キャリアアップ(JOB@IT)