.NET 4.0与3.5运行时性能比较

4

现在,由于VS2010已经进入RC阶段,似乎距离自2.0以来的第一个新的“核心”运行时版本发布只有几周的时间了。虽然我没有立即升级的需求,但我想知道是否有人在这两个版本之间进行了性能测试/基准测试。

如果有任何明显的性能提升,那么重新编译现有的工作应用程序将是有益的。

TIA, Dejan


我认为这应该是一个维基而不是一个问题。 - hemp
5个回答

3
ASP.NET 4 Runtime 
      o Focused on two areas
            + Performance
            + Extensibility
      o New resource monitoring options
      o New performance features
            + Session state
            + Improving perceived application startup
      o Output cache extensibility

请点击此链接http://ecn.channel9.msdn.com/o9/pdc09/ppt/FT57.pptx查看相关IT技术内容。


2

我发现在我们运行的一个测试套件中,.NET 4.0 只比 .NET 3.5 稍微慢一点点。这个测试会使用 System.Data.Sqlite 在 SQLite 数据库上执行一堆查询,它们在 .NET 3.5 上比 .NET 4.0 快 1-2%。不确定为什么会更快,但是只有毫秒级别的差距,所以我并不太担心。


@Jeff:有趣。System.Data.Sqlite是“本地”的4.0版本还是在2.0上并行运行? - Dejan Stanič
@Dejan,我们正在使用混合模式的System.Data.Sqlite,其中包含本地代码和CLR代码。 - jjxtra
@Dejan System.Data.Sqlite.dll是来自2009年7月的.NET 2.0版本。 - jjxtra
1
@Dejan 这很有趣,我重新编译了System.Data.Sqlite代码到我的.NET 4.0项目中,现在时间与.NET 2.0版本几乎相同。 - jjxtra
@Jeff:这很有道理 - 可能内存使用量也减少了? - Dejan Stanič
对于WPF来说,性能提升是巨大的。至少在我的图表应用程序中是这样的。 - basarat

2
不要抱太大希望,.NET 4.0绝对不是一个性能导向的版本。首先,它是一个兼容性版本。微软五年来一直无法发布CLR和基础类库的并行可安装版本,这一问题现在得以解决。更好的是,这是一个支持在同一进程中运行旧版CLR和新版CLR的SxS版本。这是一个了不起的成就,我认为这是不可能的。许多BCL添加使其更加完美。

1

现在回答这个问题还为时过早,因为我们刚刚发布了RC版本。


1
当然可以。 但是作为Visual Studio的发布候选版,我预计.NET运行时本身目前已经非常稳定。换句话说,RC和RTM之间几乎不可能有任何重大差异。 - Dejan Stanič

0

这要看情况。
我非常喜欢使用LINQ,因为它可以显著提高性能。
根据VS2010的分析器,差异可以达到快230%。
但这当然只是.NET 4.0的特定部分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接