Thursday, September 27, 2007 4:52 PM
在 VS 2008中,我们就开发人员所关心的一些常见的使用场景在性能上作了很大的改进.我们对新的产品功能以及现有的产品功能都设置了明确的性能指标。
例如,对于新的 LINQ,我们设置的性能目标是:
对同一个查询,LINQ的性能必须显著优于SqlDataAdapter,与SqlDataReader相比也必须有竞争力;从SQL Server检索数据时,LINQ的接口必须是最轻量级的.
在我们的测试过程中,
我们所尝试过的每个测试案例几乎都表明,LINQ实际上的确比SqlDataAdapter表现更好,
而在大多数那些的例外的测试案例中, 完成相同的任务,LINQ比SqlDataReader落后的速度不超过10%。
考虑到 LINQ的强大功能,我们认为这样的取舍是合理的。
在Visual Studio 2008中我们能看到的更显著的性能提高包括:
·
重新生成一个 VisualBasic 项目并运行一个后台编译器的速度提高到了原来的3倍,使用的内存却只有原来的1/3。更多细节在这里。51aspx
·
在编辑器里滚动较大的 C# 文件的速度比原来快了一倍,键入新文本的速度是原来的1.5倍.
·
对C# 中庞大类型的智能感应响应时间提高了至多10倍。
·
增量生成C++/ CLI 项目解决方案的时间最快可以提高到原来的1.9倍。更多细节在这里。
·
Office Word 和 Excel 文件在服务器上处理的速度快了20倍。
·
TFS 版本控制命令处理经过重写后,能够在不需要绑定内存到服务器上的情况下,支持无限量的关键命令操作。
在我们的测试衡量结果中,关键命令的运行速度还提高了 10% 到 60%,尤其是在比较大的项目上操作时有了很大的性能提高。从这-里可以看到更多关于改进TFS可测量性的工作51aspx。
我们还致力于充分利用多核硬件的优势来提高性能。正如我以前的日志中提到的,我们对MSBuild工具增添了多线程支持。此外,使用 / MP 开关,您可以大大提高您的 C++ 项目生成时间 – 在内部的项目里,我们看到C++前台编译器在双核硬件上性能的提高最多可高达30%。.NET Framework 3.5 运行时的性能也有了显著提升,我们精简了CLR的线程池,使得各种类型的多线程应用程序得到性能改进。例如,当这些架构方面的改进与套接字端口API的改进结合在一起,并使用双核处理器的情况下,异步套接字端口I/O的操作速度最快提高了70%。更多关于此项工作的细节在这里。
上面这些只是VS2008性能改进的一些重要方面,VS2008中还有许多其他的性能改进,而且我相信仍然有些地方我们能够做得更好。像任何其他东西一样,这是一场旅行,而非终点。
在 VS 2008中,我们就开发人员所关心的一些常见的使用场景在性能上作了很大的改进.我们对新的产品功能以及现有的产品功能都设置了明确的性能指标。
例如,对于新的 LINQ,我们设置的性能目标是:
对同一个查询,LINQ的性能必须显著优于SqlDataAdapter,与SqlDataReader相比也必须有竞争力;从SQL Server检索数据时,LINQ的接口必须是最轻量级的.
在我们的测试过程中,
我们所尝试过的每个测试案例几乎都表明,LINQ实际上的确比SqlDataAdapter表现更好,
而在大多数那些的例外的测试案例中, 完成相同的任务,LINQ比SqlDataReader落后的速度不超过10%。
考虑到 LINQ的强大功能,我们认为这样的取舍是合理的。
在Visual Studio 2008中我们能看到的更显著的性能提高包括:
·
重新生成一个 VisualBasic 项目并运行一个后台编译器的速度提高到了原来的3倍,使用的内存却只有原来的1/3。更多细节在这里。51aspx
·
在编辑器里滚动较大的 C# 文件的速度比原来快了一倍,键入新文本的速度是原来的1.5倍.
·
对C# 中庞大类型的智能感应响应时间提高了至多10倍。
·
增量生成C++/ CLI 项目解决方案的时间最快可以提高到原来的1.9倍。更多细节在这里。
·
Office Word 和 Excel 文件在服务器上处理的速度快了20倍。
·
TFS 版本控制命令处理经过重写后,能够在不需要绑定内存到服务器上的情况下,支持无限量的关键命令操作。
在我们的测试衡量结果中,关键命令的运行速度还提高了 10% 到 60%,尤其是在比较大的项目上操作时有了很大的性能提高。从这-里可以看到更多关于改进TFS可测量性的工作51aspx。
我们还致力于充分利用多核硬件的优势来提高性能。正如我以前的日志中提到的,我们对MSBuild工具增添了多线程支持。此外,使用 / MP 开关,您可以大大提高您的 C++ 项目生成时间 – 在内部的项目里,我们看到C++前台编译器在双核硬件上性能的提高最多可高达30%。.NET Framework 3.5 运行时的性能也有了显著提升,我们精简了CLR的线程池,使得各种类型的多线程应用程序得到性能改进。例如,当这些架构方面的改进与套接字端口API的改进结合在一起,并使用双核处理器的情况下,异步套接字端口I/O的操作速度最快提高了70%。更多关于此项工作的细节在这里。
上面这些只是VS2008性能改进的一些重要方面,VS2008中还有许多其他的性能改进,而且我相信仍然有些地方我们能够做得更好。像任何其他东西一样,这是一场旅行,而非终点。