首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >与VS2005相比,在VS2008中编译的项目的性能有了奇怪的提高

与VS2005相比,在VS2008中编译的项目的性能有了奇怪的提高
EN

Stack Overflow用户
提问于 2009-07-17 13:23:45
回答 1查看 261关注 0票数 1

我有一个第三方库和一个简单的基准测试,这是我自己写的,用来测试这个库的性能。第三方库是C++/CLI .NET库,那里的大多数代码都是非托管的。这个库是为.NET Framework2.0组装的。我的基准测试是托管的C#代码,它给库增加了很少的开销,只对方法进行了简单的调用,订阅了事件处理程序,关闭/打开连接等。库在多个工作线程中执行一些操作,它还处理套接字。

奇怪的是,当我用VS2005进行基准测试时,当我用VS2008做同样的测试时,我得到了不同的性能值(VS2008好10% )。

如果我的所有代码只使用.NET 2.0的特性,没有使用3.5中的语言/特性或库,那么性能提升的原因是什么呢?我的基准测试项目只引用System.dll和第三方dll,而基准测试代码在VS2005和VS2008项目中完全相同?

EN

回答 1

Stack Overflow用户

发布于 2009-07-17 13:30:26

即使你只使用2.0的功能(语言?库?),可能是3.5JIT简单地优化了代码,或者一些库更优化了。

换句话说:虽然2.0函数的接口保持向后比较相同,但实现不一定是这种情况。我假设GC (它的锁定也在不断地调整)

很难弄清楚到底是什么导致了这种差异。它可以像一些原始函数(如memmove,在mem中搜索字节/字)一样简单,并针对更新的cpu进行优化。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1143235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档