C#将AssemblyVersion更改为早期版本会影响性能

时间:2015-08-13 17:44:16

标签: c# performance dll visual-studio-2013 assemblyinfo

我已经调查了这个bug一个星期左右,并且在所有尝试找出如何修复它之后,我仍然没有这样做。这个问题是这篇文章的标题。当我进入我的c#项目并增加 AssemblyVersion转换为更新版本时,我获得了一个小的性能提升。当我减少 AssemblyVersion时,我获得了显着的性能提升。

此时我正在使用带有AMD处理器的64位机器,如果我切换到Intel机器(也是64位),则不会发生此问题。我正在开发的项目依赖于2个或3个Microsoft dll和1个dll,这个dll是由过去从事该项目的人创建的,我无法联系(内置x86)。

在VisualStudio 2013中,我分析了程序集版本号递增,递减和保持不变时的性能。从我所看到的情况来看,平均而言应用程序在较慢的版本上使用较少的线程,并且有更多的冲突。

我会诚实地说,我正在接受一个过去正在研究的项目,我绝对是C#业余爱好者。因此,我花了大约一周时间尝试研究AssemblyVersion和AssemblyFileVersion的确切用途,如何使用项目构建AssemblyInfo.cs,以及如何使用项目构建dll。虽然我对事实仍然有点朦胧。以下是我研究过的一些地方:

DLL hell

Differences between assemblyversion assemblyfileversion and assemblyinformationalversion

Process Interoperability

Cross assembly causes performance hit

我还运行了Visual Studio性能和诊断工具,试图以图形方式显示cpu的应变,并查看在应用程序生命周期内调用函数的次数。所有3个选项(递增,递减,保持不变)具有运行应用程序的功能(一个每50毫秒关闭一次的计时器)如果它是较慢的版本则运行更多,如果它是更快的版本则运行更少。

我尝试将我们项目中使用的dll重建为x64,并将项目构建为Any CPU,但这也无效。在那之后,我碰到了一堵砖墙,完全不知道在哪里寻找有关我遇到的问题的更多帮助/信息。

如果我很难回答,或者有什么不清楚,我真的很抱歉。如果有人需要更清楚的解释,我会尝试回复并这样做。在4东方之后,我不能在明天早上回复问题。

谢谢大家

编辑*使用秒表类进行了性能测量(我知道这个坏主意)。 GUI在页面上刷新结果的速度有明显不同。 (在GUI上每秒可以显示大约3-10条消息)

0 个答案:

没有答案