在 VS 2008中,我们就开发人员所关心的一些常见的使用场景在性能上作了很大的改进.我们对新的产品功能以及现有的产品功能都设置了明确的性能指标。
例如,对于新的 LINQ,我们设置的性能目标是: 对同一个查询,LINQ的性能必须显著优于SqlDataAdapter,与SqlDataReader相比也必须有竞争力;从SQL Server检索数据时,LINQ的接口必须是最轻量级的. 在我们的测试过程中, 我们所尝试过的每个测试案例几乎都表明,LINQ实际上的确比SqlDataAdapter表现更好, 而在大多数那些的例外的测试案例中, 完成相同的任务,LINQ比SqlDataReader落后的速度不超过10%。 考虑到 LINQ的强大功能,我们认为这样的取舍是合理的。
在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工具增 添了多线程支持。此外,使用 / MP 开关,您可以大大提高您的 C++ 项目生成时间 – 在内部的项目里,我们看到C++前台编译器在双核硬件上性能的提高最多可高达30%。.NET Framework 3.5 运行时的性能也有了显著提升,我们精简了CLR的线程池,使得各种类型的多线程应用程序得到性能改进。例如,当这些架构方面的改进与套接字端口API的改进结合在一起,并使用双核处理器的情况下,异步套接字端口I/O的操作速度最快提高了70%。更多关于此项工作的细节在这里。
上面这些只是VS2008性能改进的一些重要方面,VS2008中还有许多其他的性能改进,而且我相信仍然有些地方我们能够做得更好。像任何其他东西一样,这是一场旅行,而非终点。
Visual Studio 2008 十大新功能
VS2005还没有最终稳定的版本,但是我想在微软的某个办公室,一个项目组正在研究发展Visual Studio 2008这个版本。我看了一下表,现在的时间是公元2006-3-9日,离微软发布VS2008版的α版还有整整18个月,我不知道它最终会是如何的,但 是它一定具有以下十项激动人心的特点:
No.1 代码中插入图片,而且它可以被Notepad进行编辑?
是神话么,不是。它实际上是在注释中加入了另一个标签,其标签指向当前解决方案的的一个图片链接正如下面的样子
很好,它的确可以被NotePad进行编辑。为什么要供这个功能? 呵呵,当你维护一段代码时,你首先是想是了解它是如何来组织程序的,当然你可以通过文字描述,类视图等等来了解,或者也是我们常用的写一个说明文档,然后 放入另一个DOC的目录,然后过了一两年,你,噢不是你,是你现在的手下发现找不到那个文档了!文档中插入图片,一目了然。 其实类似的功能还有几个,象///
No.2 完美的代码段编辑器
我已经很烦写#region之类的东东了,在VS2008中如果你想要对一个函数进行具体编码你只需要按快捷键就可以进入代码段编辑器,其实早在古老的 VB6.0中就有的,只是它还是在同一个窗口里,但是这次有点不一样,它是另个一个窗口。现在有两个窗口了,一个全部代码的窗口,还有一个是本函数的窗 口,而且它是浮动的,下面的窗口也可以进行滚动。
所谓完美,当然不只是这个功能,它还包括相当好的注释编辑,以及代码自动生成,呵呵还有微软内部的类似源代码,居然还是中文的,呵呵。
No.3 兼容linux平台检查
这个特性并不是微软主动想要来做的,没办法,市场逼得他这样做。一帮高手在linux下推出了linux平台下的.net环境,呵呵,而且居然形成了标 准,MS坐不住了。比尔在一个星期一的早晨把VS2008的项目经理NB007叫去要他想点办法,于是NB007又把他手下这帮人叫来开了个会,据说那天 是2007-4-1日,因此这项检查在微软内部的名称叫"愚人节标准",在MS对外的名称叫做 CLX兼容性检查,对了在这里你不能使用System.windows.forms这个命名空间,你必须使用System.Xnix.Forms,它可以 在多种Unix/Linux下使用。
而且基于这个特点,你可以在Windows平台下编辑你的代码,然后可以模拟Unix/Linux平台运行,不过好象还有点小bug,总是在最后弹出一个对话框:
“Warn: M$建议你在Windows下运行此应用程序!"
No.4 即时交流功能
其实这个功能是在企业版才有的,而且只局限于局域网内,它需要一个Server中心。企业版在其他国家都比较贵,而且这个功能需要另外付费1000$。在 中国,企业版只要五元,这个功能是免费赠送的,而且可以在Internet上使用。据说是一个0day组织用ILDASM改动了一些代码。
它的作用其实就是当你在写代码时可以和朋友讨论问题,当然你也可以选择隐身!
No.5 更漂亮的界面,透明,真正的3D
如果你要发挥VS2008的界面效果,一定要安装Window Vista,并且需要Patch3,在VS2005及以前的版本中,界面只是好看而已,这个版本体现了Window 界面项目组的专业水平,以前可以叫浮动 的窗口,现在叫悬空,效果你安装后就知道了。对了,还有一点点小要求,MS推荐配置
CPU :PⅦ 4.0T(群核处理器)
内存:64 T
硬盘:128T
No.6 大幅提升的Visio功能
现在你不需要完全用手写代码,只需要在Visio中画一个一个的类,对象,关系图等等。然后选一定一个生成模板,就可以基本生成一个应用程序(因为这个原 因,众多的软件学院添加了计算机制图这门课程,还不是选修)。其实我是比较喜欢这个功能的,不过有一点点小问题,生成的代码性能不是很好,需要手工进行优 化,MS在它的网站上宣告在下一个版本中它会提供更多的应用模板,分类更加细致等等。
No.7 超多的专业控件
以前VS跟Delphi(现在它叫 Siphi,由Sun,IBM联合开发)比,总是它的控件不够,这次MS花了血本制作了上千个控件,象ComboBox就有多达三十多种的变种控件,并且 你可以上MS的网站检索 更多的控件,你也可以向MS提交你自已写的控件,并且向世界共享。
N0.8 内嵌汇编
其实这算不上一个很好的功能,不过有人需要,也就提供了。你可以嵌入IL代码或者本地汇编代码,不过如果嵌入了本地汇编代码,C#4.2会提出一个编译警告。
No.9 强大的配套工具
多种功能强大的工具,包括内存图形器,压力测试工具,性能分析器,还有一个Java2CSharp的工具,能够转换95%以上的代码。 对了,终于MS推出了自已的混淆器,功能强大,但是MS说明在某些场合可能出错。
No.10 命令行爱好者的福音
如果你实在喜欢命令行,喜欢写批处理,这个也会令你激动不已。因为微软里面也有一帮古怪的老家伙,不喜欢集成环境,而一定要用DOS下的Edit来编写一 个Make文件,然后写一个批处理,我是不喜欢DOS的,因此没用过。不过可信的是在VS2008测试版发 行的头个晚上一个叫 EditCrazy.Dos的家伙把他用汇编写的一个可以方便选择编译的选项的工具MakeTemplate.com放入了光盘的母版中。
这个事件是MS事后才知道的,但是已经收不回这些测试版的安装光盘了,因此也就将错就错,而Jeffrey Richter在他的书中也提到了这段趣闻。他的评语是"还不错,我回到了我的年轻时代"
最后,我是用UltraEdit32 1.0汉化破解版来写这篇文章的,并且我没有安装VS2005的测试版,但是我想再过几个月就会有5元的VS2005简体中文企业版了,还带patch1。