首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CLR 2.0与4.0性能?

CLR 2.0与4.0性能?
EN

Stack Overflow用户
提问于 2011-01-14 05:14:41
回答 3查看 3K关注 0票数 4

如果运行unden CLR4.0,为CLR2.0编译的.NET程序会运行得更快吗?

app.config:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0.30319" sku=".NETFramework,Version=v4.0,Profile=Client" />
    <supportedRuntime version="v2.0.50727"/>
  </startup>
</configuration>
EN

回答 3

Stack Overflow用户

发布于 2011-01-14 05:20:18

通常情况下,不会-它将是相同的。

默认情况下,CLR 4运行时将加载CLR 2运行时来执行CLR 2代码库。在CLR4下强制执行需要在app.Config中设置useLegacyV2RuntimeActivationPolicy

如果您添加了该标志,那么它将在CLR v4中运行。一般来说,性能可能非常相似,但由于JIT和核心运行时的变化,新的运行时可能会略有不同。不能保证CLR 4会更快-它有时可能会更慢,尽管一般来说,我预计在这两个运行时下的性能会非常接近。

如果您有性能问题,请分析您的应用程序。更改运行时不会修复性能问题。然而,在两者下运行时分析您的应用程序将是了解它是否对您有影响的唯一方法。

票数 7
EN

Stack Overflow用户

发布于 2011-01-14 05:20:24

一般来说,不是很明显。运行时都是向后兼容的,在旧版本中找到的AFAIK库仅在语言规范更改(例如,添加协方差/逆方差支持)或被标识为实际内存/CPU占用时才会被修改。

票数 0
EN

Stack Overflow用户

发布于 2013-05-25 03:04:53

通常:No

有几个性能得到改善的情况,即如果应用程序用小工作淹没ThreadPool,那么窃取工作的ThreadPool优化将是一个巨大的胜利。这也可能会显著改变工作的执行顺序,因此一些意外依赖于排序的应用程序可能会崩溃。

在后台、GC、(中大型对象压缩)和互操作(对象锁定更改)中也有类似的情况。

摘要

如果.NET 3.5 (CLR2.x)应用程序的性能比预期差,那么可以在.NET 4.5 (CLR4.x)上尝试该应用程序。

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

https://stackoverflow.com/questions/4685345

复制
相关文章

相似问题

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