私は、 Assembly.LoadFrom(ファイル).GetTypes()...とActivator.CreateInstance(T)を使用してロードされたdllプラグインを使用するオーディオアプリケーションを作成しています。C#プラグインは、Assembly.LoadFrom()...クラスが遅いですか?
私の質問は、読み込みプロセスが遅い場合、初期化時間は重要ではない、プラグインがオーディオ処理ループを内部に持っているかどうかを尋ねています。プラグインを使用して??
私は、 Assembly.LoadFrom(ファイル).GetTypes()...とActivator.CreateInstance(T)を使用してロードされたdllプラグインを使用するオーディオアプリケーションを作成しています。C#プラグインは、Assembly.LoadFrom()...クラスが遅いですか?
私の質問は、読み込みプロセスが遅い場合、初期化時間は重要ではない、プラグインがオーディオ処理ループを内部に持っているかどうかを尋ねています。プラグインを使用して??
〜これらのヒントはあなたを助けることができると思います。 これは、DLLの内容が現在のプロセスのメモリにロードされるためです。 メモリにアクセスすると、直接参照された場合と同じパフォーマンスが得られ、CPU時間は直接参照される場合と同じように共有されます。
初期ローディングのみがかなり遅くなります。
この男は両方の方法テストアプリケーションのいくつかのプロファイリングを行い、自分のために見つけるいくつかの素晴らしいものhttp://www.codeproject.com/Articles/4610/Three-Ways-to-Inject-Your-Code-into-Another-Proces
これは奇妙に思える...
アセンブリがロードされると、何も違いはありません...
だから、私は、これらに診断することをお勧め:
私はあなたのDLLの内容をロードした後、あなたはそれへの直接参照を使用していたかのように、パフォーマンスは同じでなければなりません
を行うにはLoadFromを使用しています。実際はかなりシンプルです。 –
アセンブリ内のILは、ジャストインタイムコンパイラによってマシンコードに変換されます。 1種類のマシンコードがあり、低速版または高速版はなく、ジッタはILがどこから来たかには関係ありません。 –