我有一个 3rd 方库和一个简单的基准测试,我自己编写来测试这个库的性能。第 3 方库是 C++/CLI .NET 库,大多数代码都是非托管的。该库是为 .NET Framework 2.0 组装的。我的基准测试是托管的 C# 代码,它给库增加的开销很小,只对方法的简单调用、对事件处理程序的订阅、关闭/打开连接等。库在多个工作线程中执行一些操作,它还处理套接字。
奇怪的事情——当我用 VS 2005 通过基准测试编译时,当我用 VS 2008 做同样的事情时——我得到了不同的性能值(VS 2008 好 10%)。
如果我的所有代码仅使用 .NET 2.0 功能,不使用 3.5 的语言/功能或库,会导致性能提高的原因。我的基准测试项目只引用了 System.dll 和 3rd 方 dll,而基准测试代码在 VS2005 和 VS2008 项目中是完全一样的吗?