在我们关于即将到来的 Visual Studio 11 迷你系列的前几篇文章中已经讨论了有关所支持编程语言和集成开发环境的新功能。今天我们要看一下会影响所有使用Visual Studio 开发者的另一重要方面:性能。
虽然不像新功能那么令人兴奋,但是Visual Studio 环境的性能问题已贯穿 好几 代产品成为一种反复出现的开发者忧虑。这种忧虑一直持续到目前的Visual Studio 2010 和最近发布的Visual Studio 11开发者预览版。在今年早些时候微软发布了Visual Studio 扩展 PerfWatson ,此扩展专门用于从 Visual Studio 2010 SP1 用户那里收集实际性能数据,以便在 Visual Studio 11 发布前修正这些问题。
从那时起,PerfWatson 已被集成到Visual Studio 11 中,以帮助微软的开发团队修正出现的问题,从而该版本初见端倪。微软的工程总监Larry Sullivan 最近在Visual Studio UserVoice 反馈网站的性能分类下提供了一个更新。Sullivan 指出已收到超过“4700 回复和投票”,并且他希望开发者继续提供评论和PerfWatson 数据。
Sullivan 的更新引发了很多用户热议。现在一起回顾一下部分评论,这些评论表达了许多开发者正在经历的挫折:
用户 _Darrell_ 写道:
“是的——你正在听取针对下一代 Visual Studio 的反馈,此举确实很棒,但是对于当前版本的 Visual Studio 又在做些什么?在推出适用于 VS2010 的 SP 补丁包之前,难道我们就不能获得那些修复中的一些么?Visual Studio 正在严重迫使我远离 Windows 开发。由于内存不足问题(拥有大量内存且运行 64 位版本)我的 VS 每天会崩溃 2 至 3 次,而且我经常会遇到其他性能问题,这使得我的生活简直像地狱一般。照这么下去,我的下一份合约将不会做.NET 开发,或者反正至少不是在 Windows 上开发。”
用户 _Santosh Kumar Arisetty_ 写道:
“我的 Visual Studio 2010 每天至少重启两次。它会报告一个问题,真是谢天谢地。我希望所有这些问题将尽快得到解决,从而使 VS 更加健壮。如果这些可作为适用于 VS2010 的 SP 补丁包的一部分,而不是 VS2011 的一部分的话,那就真的太棒了。”
用户 _PleaseFixYourBugs_ 摘录:
“你完成你的性能工作了么??!你验证你的胜利果实了么???对不起,但我什么也没看到。我花了不少时间把玩 VS2011 开发者预览版,但是它完全与 VS2010 一样慢。而且你说你正在准备收尾工作?!太离谱了。”
用户 _VS Perf_ 写道:
“我觉得修复 VS 性能问题的最佳方式就是在所有内部项目中使用它,即 Dogfooding[1]。据我所知,你们的一些 / 许多开发者在内部并不使用它,尤其对于那些较大的项目,对不?还是我被误导了?”
这些以及其他评论导致 Sullivan 发表了以下回复。首先,他想澄清开发者预览版相对于已排程的 Visual Studio 11 测试版(Beta)的作用:
“我应该更清楚不过的是,我们正处于针对测试版性能改进的大力推进的收尾阶段,而不是针对开发者预览版的,并且我期待每个人都能获取测试版,从而感受这些改进。开发者预览版实际是为了展示我们对于 Win8 和云开发的支持,以及新的应用程序生命周期管理(ALM[2])功能和 Team Foundation Service。我们努力检测该产品以便收集更好的有关你在 Visual Studio 上的哪些地方花时间等待的遥测数据。虽然此项工作在开发者预览版中并未显示出成功,但是非常有助于我们更好地理解 Visual Studio 中那些问题最多的区域,而且此项工作将会在测试版及后续版本中产生效益。”
针对用户“VS Perf”提到的 Dogfooding(在内部使用产品的实践)问题,Sullivan 这样说道:
“既然提到了 Dogfooding,那么我想让你知道我们对 Visual Studio 和 TFS[3] 进行内部使用的情况。我们使用我们的产品来构建我们的产品,而且我们这么做的原因正如你所说的一样,以便让每个开发者对该产品都有感觉。为了给你一些范围感——在 Visual Studio 部门中,我们通常有数以百计的员工工作在最新版本上,而在 Visual Studio 部门之外,我们同样有许多在工作中使用当前版本产品的合作伙伴团队。开发部将 TFS 用于我们所有源代码的管理、bug 和工作项目追踪,以便我们做到使用我们产品的完整范围。”
InfoQ 将继续跟踪 Visual Studio 11 的发展,见证这些性能变化是如何在发布代码中体现出来的。
译注
[1] Dogfooding,又称 Eating your own dog food,是指当某家公司(通常是软件公司)使用其自己制作的产品时的那段时期。在 1988 年,微软经理 Paul Maritz 发给 Microsoft LAN Manager(产品名,微软局域网管理器)的产品测试经理 Brian Valentine 一封题为“Eating our own Dogfood”的电子邮件,要求他增加该公司产品的内部使用率。从那时开始,此术语的用法传遍了整个公司。Dogfooding 可能是某公司展示对其自己产品有信心的一种方式,因此也是一种见证广告。例如,微软和谷歌都强调对其自己的软件产品的内部使用。“eating your own dog food” 背后的想法是,如果你希望客户购买你的产品,那么你也应该愿意使用它们。更多详细内容参见 Eating your own dog food 。
[2] ALM,Application Lifecycle Management,即应用程序生命周期管理,用于支持应用程序在开发团队与运营团队之间进行流动和转移。更多详细内容参见 Visual Studio Roadmap
[3] TFS,Team Foundation Server,更多详细内容参见 Team Foundation Server 是什么?。
评论