Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET4应用程序调用.NET2DLL是否会影响性能?_C#_.net_Winforms - Fatal编程技术网

C# .NET4应用程序调用.NET2DLL是否会影响性能?

C# .NET4应用程序调用.NET2DLL是否会影响性能?,c#,.net,winforms,C#,.net,Winforms,我找不到这个确切问题的答案,但也有相关的问题 我们有一个大型WinForms应用程序,它被编译为使用.NET4。但是,我们调用的几个DLL和所有第三方控件都编译为使用.NET2。显然,这是可行的,但是由于这种情况,是否存在任何负面性能问题?如果一切都使用.NET4,会更快吗 我不是在尝试微优化,但是如果我可以通过重新编译我的源代码来获得微小的提升,因为如果有收获,我愿意付出努力。理论上,这对性能不会有任何重大影响 Net Framework的兼容性目标是,以前版本的应用程序和组件应能在.Net

我找不到这个确切问题的答案,但也有相关的问题

我们有一个大型WinForms应用程序,它被编译为使用.NET4。但是,我们调用的几个DLL和所有第三方控件都编译为使用.NET2。显然,这是可行的,但是由于这种情况,是否存在任何负面性能问题?如果一切都使用.NET4,会更快吗


我不是在尝试微优化,但是如果我可以通过重新编译我的源代码来获得微小的提升,因为如果有收获,我愿意付出努力。

理论上,这对性能不会有任何重大影响

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对应用程序进行了分析,每次发布至少一次,以了解新代码中的任何差异或旧代码中的热点。