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