C#插件的Assembly.LoadFrom()..类的速度较慢
本文关键字:速度 插件 Assembly LoadFrom | 更新日期: 2023-09-27 18:26:18
我正在制作一个音频应用程序,它使用dll插件,这些插件是使用Assembly.LoadFrom(文件).GetTypes()…和Activator.CreateInstance(T).
我的问题不是,如果加载过程很慢,初始化时间并不重要,我想问的是,如果插件内部有音频处理循环,这会比我直接添加类而不使用插件慢吗??
一旦程序集加载到内存中并使用"Activator.CreateInstance(T)"方法实例化,其性能应该与直接引用没有什么不同。
一旦加载了DLL的内容,性能应该与使用直接引用时相同。这是因为DLL的内容将被加载到当前进程的内存中。因此,访问内存将具有与直接引用相同的性能,并且CPU时间将像直接引用一样共享。
只有初始加载才会慢得多。
这家伙用LoadFrom做了一些了不起的事情http://www.codeproject.com/Articles/4610/Three-Ways-to-Inject-Your-Code-into-Another-Proces
这似乎很奇怪。。。
加载程序集时,没有区别。。。
所以,我建议对这些进行诊断:
- 程序集是否加载在同一应用程序域中
- 您加载的程序集是在调试模式还是发布模式下编译的
- 检查你的反思行为,因为反思对表现有负面影响
- 检查assembly.net运行时版本,性能问题是由并行引起的吗
我希望这些提示能帮助你~