Плагины C #, классы Assembly.LoadFrom () ... работают медленнее? - PullRequest
3 голосов
/ 29 февраля 2012

Я делаю аудио-приложение, которое использует плагины dll, которые загружаются с использованием Assembly.LoadFrom (файл) .GetTypes () ... И Activator.CreateInstance (T).

Мой вопроснет, если процесс загрузки медленный, время инициализации не важно, я спрашиваю, есть ли внутри плагина цикл обработки звука, это будет медленнее, чем если бы я просто добавил класс напрямую, без использования плагинов ??

Ответы [ 3 ]

3 голосов
/ 29 февраля 2012

Как только сборка загружена в память и была создана с использованием метода «Activator.CreateInstance (T)», ее производительность не должна отличаться от прямой ссылки.

2 голосов
/ 29 февраля 2012

После загрузки содержимого библиотеки DLL производительность должна быть такой же, как если бы вы использовали прямую ссылку на нее.Это связано с тем, что содержимое библиотеки DLL будет загружено в память текущего процесса.Таким образом, доступ к памяти будет иметь ту же производительность, что и прямая ссылка, а время ЦП будет разделено так, как если бы оно было прямым.

Только начальная загрузка будет значительно медленнее.

Этот парень использует LoadFrom, чтобы делать удивительные вещи http://www.codeproject.com/Articles/4610/Three-Ways-to-Inject-Your-Code-into-Another-Proces

0 голосов
/ 29 февраля 2012

Это кажется странным ...

Когда сборка загружена, нет никакой разницы ...

Итак, я предлагаю провести диагностику по следующим параметрам:

  1. Загружены ли сборки в одном домене приложения?
  2. Загруженные сборки скомпилированы в режиме отладки или выпуска?
  3. Проверьте действия отражения, поскольку отражение негативно влияет на производительность
  4. Проверьте сборку .NET версии времени выполнения, проблема с производительностью вызвана рядом?

Надеюсь, эти советы помогут вам ~

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...