BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

再谈Visual Studio 11的性能

| 作者 Jeff Martin 关注 16 他的粉丝 ,译者 侯伯薇 关注 0 他的粉丝 发布于 2012年4月6日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

我们上次讨论性能的时候,微软的Larry Sullivan就强调,PerfWatson对于生成可评审的性能数据很重要,那让Visual Studio团队可以做出改善。Sullivan现在可以告诉大家,他的团队已经可以处理这些数据,并对VS11做出了特定的改变。

虚拟内存

Sullivan首先讨论了团队对Visual Studio内存需求所采用的方法。他们并没有把程序转换为本地的64位应用程序,从而访问更多内存,而是决定把重点放在如何更有效地使用32位进程所提供的内存。这样,团队首先处理的是VS中消耗内存最多的DLL。他们检查了800多个DLL,看其中是否存在对内存低效和过度使用的情况。

消耗内存第二多的就是VS中各种组件所使用的本地堆结构(native heap)。除了降低内存使用之外,这次任务的过程中还发现“上百次机会,可以找到‘准备就绪’的缺陷,团队在将来可以修正它们”。

最终的结果是,“当使用Visual Studio载入Web解决方案的时候,会少载入接近300个DLL库,并节省差不多400MB的虚拟内存”。在报告中没有直接提到对于其他类型解决方案获得的性能提升,但是Sullivan在以下评论中说到:

我能够找到拥有那些现成数据的人。在Beta版中,对于C++来说虚拟内存表现平平,但是我们会在下一个Beta版中做出更大改进。在Beta版中大概能够节省35MB,那差不多是12%的提升。我们会继续为C++开发者改善Visual Studio 11。

解决方案载入时间提升

解决方案的加载时间会影响所有VS用户,团队通过引入异步加载解决方案来解决这个问题。微软Visual Studio Pro团队的Nathan Halstead提供了关于这个方法的信息,VS会分两个阶段来加载项目,模式加载(Modal Loading)和后台加载(Background Loading)。

在模式加载阶段,VS11会基于上次会话打开的文件,载入用户可能需要用到的项目。如果其他项目和打开的项目有依赖关系,那么也会在这个阶段载入。不重要的项目会被安排到后台阶段载入。

后台加载阶段会解包UI线程,并开始在后台处理剩余的加载任务。如果用户的动作表名需要未加载的项目,那么VS会在继续进行后台加载之前把那个加载过程放到前面来。

“编译-编辑-调试”循环

最后,Visual Studio Ultimate团队的Tim Wagner描述了对日常“编译-编辑-调试”循环所做出的改变。Wagner说到,VS的构建版只是要完成功能,而性能会在VS 11 Beta版中做出提升。不幸的是,Wagner的说法专注于Windows 8上Metro应用程序开发的性能,那是VS11特定的功能,与Visual Studio之前版本有很大区别。

微软的首席项目经理Ayman Shoukry提供了关于C++性能的一些暗示:

在VC++的编译器和连接器方面,我们做出了多项提升, 特别是让Dev11的编译器可以进行多线程处理。因此,在构建某些大型内部微软产品的时候,我们看到编译时间有了很大改善。我们会发布更详细的博客,说明在Dev11 VC++中做出的构建时间方面的改善。

尽管这些改善还没有完成,但Wagner承诺说:

这里关于进展的报告并不意味着我们已经满足于Beta版的性能——我们会一直努力,争取在Dev 11中获得更多改善。
查看英文原文:Visual Studio 11 Performance Revisited

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

vs打开比较大的解决方案时实在是太慢了 by li tao

如果有64位版本会不会好些呢?

Re by 龚 昱阳

长久的体验告诉我,VS的速度一直是在提升的~ (不知道是不是因为我电脑配置变好了……)

Re: Re by jianxiao jiang

那是你没有在你现在的电脑上装vs2003 ,飞一样的速度

VS2011与VS2010兼容性 by 遥望 星空

不知道VS2011与VS2010的兼容性如何,不会提示我升级解决方案吧?

Re: Re by 糕点 沉默的

安装了Resharper之后,一切都是浮云

Re: Re by dog dogvane

对头,内存也是翻倍上涨。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

6 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT