C#插件的Assembly.LoadFrom()..类的速度较慢

本文关键字:速度 插件 Assembly LoadFrom | 更新日期: 2023-09-27 18:26:18

我正在制作一个音频应用程序,它使用dll插件,这些插件是使用Assembly.LoadFrom(文件).GetTypes()…和Activator.CreateInstance(T).

我的问题不是,如果加载过程很慢,初始化时间并不重要,我想问的是,如果插件内部有音频处理循环,这会比我直接添加类而不使用插件慢吗??

C#插件的Assembly.LoadFrom()..类的速度较慢

一旦程序集加载到内存中并使用"Activator.CreateInstance(T)"方法实例化,其性能应该与直接引用没有什么不同。

一旦加载了DLL的内容,性能应该与使用直接引用时相同。这是因为DLL的内容将被加载到当前进程的内存中。因此,访问内存将具有与直接引用相同的性能,并且CPU时间将像直接引用一样共享。

只有初始加载才会慢得多。

这家伙用LoadFrom做了一些了不起的事情http://www.codeproject.com/Articles/4610/Three-Ways-to-Inject-Your-Code-into-Another-Proces

这似乎很奇怪。。。

加载程序集时,没有区别。。。

所以,我建议对这些进行诊断:

  1. 程序集是否加载在同一应用程序域中
  2. 您加载的程序集是在调试模式还是发布模式下编译的
  3. 检查你的反思行为,因为反思对表现有负面影响
  4. 检查assembly.net运行时版本,性能问题是由并行引起的吗

我希望这些提示能帮助你~