微软声称.Net 3.5框架比2.0更快地提高了速度。有人能够验证这项索赔吗?
我对计算类型的东西(数学,图形等)特别感兴趣,但也更普遍?
答案 0 :(得分:4)
对于某些任务,3.5 CLR似乎更快。
这是对2.0和3.5的排序差异的一个相当简单的比较,显示.Net 3.5中的性能改善。
http://systematicgaming.wordpress.com/2009/01/13/performance-c-vs-c-part-2/
究竟是什么导致这些改进还不清楚,但结构在2.0下没有得到很好的处理,内联在3.5中有所改善,这两者在适当的情况下都会产生很大的不同。
答案 1 :(得分:2)
我听说3.5 JIT比2.0更智能地内联函数和命令,这可以真正帮助内存交换。
如果您对版本之间的特定时序感到好奇,可能需要使用其中一个(多个).NET Profilers自行测试。它们对于测量垃圾收集器中的每个函数和内存交换的CPU时间非常有用。
CLR Profiler:http://www.microsoft.com/Downloads/details.aspx?FamilyID=86ce6052-d7f4-4aeb-9b7a-94635beebdda&displaylang=en
dotTrace(非常好但付费; 10天试用):http://www.jetbrains.com/profiler/
答案 2 :(得分:1)
似乎不太可能的核心计算功能会在没有CLR大修的情况下看到任何重大的性能提升,而CLR仍然基于2.0。但是,我已经阅读过报告,3.5 SP1大大改善了应用程序启动时间(更多关于资源分配和初始化而不是计算速度)。
答案 3 :(得分:1)
我知道产卵线程实际上已经放慢了速度。产生的线程越多,延迟时间越长。除了我没有发现任何问题。
答案 4 :(得分:1)
3.5还添加了2.0 SP1,它取代了JITter,x86平台获得了能够在值类型上内联函数的好处,因此Double.Compare(Double)等方法得到了内联。如果你有对此敏感的代码(主要是数字运算),你会在运行时看到一个很好的加速。