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