C# .NET4应用程序调用.NET2DLL是否会影响性能?
我找不到这个确切问题的答案,但也有相关的问题 我们有一个大型WinForms应用程序,它被编译为使用.NET4。但是,我们调用的几个DLL和所有第三方控件都编译为使用.NET2。显然,这是可行的,但是由于这种情况,是否存在任何负面性能问题?如果一切都使用.NET4,会更快吗C# .NET4应用程序调用.NET2DLL是否会影响性能?,c#,.net,winforms,C#,.net,Winforms,我找不到这个确切问题的答案,但也有相关的问题 我们有一个大型WinForms应用程序,它被编译为使用.NET4。但是,我们调用的几个DLL和所有第三方控件都编译为使用.NET2。显然,这是可行的,但是由于这种情况,是否存在任何负面性能问题?如果一切都使用.NET4,会更快吗 我不是在尝试微优化,但是如果我可以通过重新编译我的源代码来获得微小的提升,因为如果有收获,我愿意付出努力。理论上,这对性能不会有任何重大影响 Net Framework的兼容性目标是,以前版本的应用程序和组件应能在.Net
我不是在尝试微优化,但是如果我可以通过重新编译我的源代码来获得微小的提升,因为如果有收获,我愿意付出努力。理论上,这对性能不会有任何重大影响 Net Framework的兼容性目标是,以前版本的应用程序和组件应能在.Net Framework 4上顺利运行 当.NET 4.0应用程序加载.NET 2.0程序集时,将使用有助于防止中断的兼容模式功能将其加载到4.0运行时: In-Proc SxS不能解决库开发人员面临的兼容性问题。应用程序直接加载的任何库(通过直接引用或Assembly.Load)将继续直接加载到加载它的应用程序的运行时和AppDomain中。这意味着,如果重新编译应用程序以针对.NET Framework 4运行时运行,并且仍然具有针对.NET 2.0构建的依赖程序集,则这些依赖程序也将加载到.NET 4运行时。因此,我们仍然建议针对您希望支持的框架的所有版本测试您的库。这是我们继续保持高水平向后兼容性的原因之一
与您可以执行的其他类型的优化(例如网络效率、数据库查询效率、数据结构优化、,等等。您估计为.NET 4重新编译需要花费多少精力?在尝试任何优化之前,为什么不分析应用程序,看看您关心的DLL是否有明显的放缓。请注意,为.NET 2编译的DLL与应用程序(即.NET 4)在同一运行时上运行,而不是在.NET 2运行时上运行。。。一个进程不能同时使用两个不同的运行时。因此,它们是为.NET2编译的这一事实在很大程度上是不相关的,我认为这对性能没有任何影响。无论如何,如果你想确定的话,唯一的方法就是做一些分析…@JamesBlack我已经用dotTrace和ANTS对应用程序进行了分析,每次发布至少一次,以了解新代码中的任何差异或旧代码中的热点。