Visual Studio “15” Preview 5 发布公告

[原文发表地址]: Announcing Visual Studio “15” Preview 5

[原文发表时间]: October 5, 2016

 

今天我们发布了Visual Studio “15” Preview 5版本。对于Preview 5版本, 我想主要介绍下性能方面的改进,在接下来的几天,我们还会有后续的博客来描述我们已经可以看到的性能提升。我打算主要说明下那些已经可以提高效率的改进点。

启动安装程序,并阅读下文,你也可以获取发布说明来了解详情。

 

性能与内存效率的大改进

我想根据这个并行对比视频,给你展示所有的性能改进。这个视频是比较打开 Visual Studio 并加载整个.NET 编译器平台"Roslyn"的解决方案,Visual Studio '15' 用时30秒,而Visual Studio 2015用时60秒。

VS15Preview5-Visual-Studio-2015-vs-Visual-Studio-15-Roslyn-Solution-Load-Perf-Screenshot

更快的加载时间是“轻量级工程加载以及按需求扩展加载”双管齐下改进的结果。下面是一些在Preview 5中的关键性能的提升:

  • 通过“轻量级解决方案加载”选项来缩短解决方案加载时间: 工作在超过100多个项目的解决方案中,并不意味着需要在一定时间内操作所有的文件或项目。VS “15”提供了在不需要等待所有工程加载完毕时就可编辑和调试的功能。你可以在Preview5的托管工程中尝试一下这种功能,可以通过工具-> 选项 ->项目和解决方案,勾选“轻量级解决方案加载”。
  • 通过按需加载扩展来更快的启动:方法很简单:当需要扩展时再加载,而不是在打开VS的时候就加载。在 Preview 5中,我们开始这样做了,已经改变了Python和Xamarin扩展为按需加载,并正在改变我们提供的所有Visual Studio扩展,以及由第三方扩展供应商所提供的扩展到这种模式。想知道哪些扩展影响了启动,解决方案加载等性能呢?你可以在帮助->管理Visual Studio性能中查看这些信息。你开发过扩展吗?我们将发布指导来帮助扩展开发人员将扩展改为按需加载。
  • 将子系统从VS主进程移动到独立进程: 我们移动了一些内存密集型任务,例如 Git 源代码管理、JavaScript 和TypeScript语言服务,以便分离进程。这就杜绝了那些较差的体验,如由于代码运行Visual Studio的程序造成的延时,或者因32位的处理器中主程序已有达到约4 GB的内存上限造成的Visual Studio变得缓慢或者崩溃。在未来的版本中,我们将继续把组件移动到进程外。
  • 对C++ 项目,更快的加载项目,编码,调试: 我们可以更快的加载C++项目,查看这个显示改进的视频。你可以通过从工具->选项->文本编辑->C/C++->实验,将“启用更快的项目加载”的值设置为True来启用它。我们也改进了我们的链接器和PDB加载库,使得增量生成工程以及调试时更快,同时在调试的时候所消耗的内存也明显减少了。
  • 使用Git 、调试工程和编辑XAML代码时速度有所提升:通过从libgit2切换到git.exe,我们提高了源代码管理操作的速度。我们也通过优化初始化时间和其他与IntelliTrace相关的时间,以及诊断工具窗口,还删除了编辑XAML文件时出现的几次延迟。从而提高了调试性能。

这只是开始,我们会专注于做这种改进,让Visual Studio启动的更快,更敏捷的反应时间,以及占用更少的内存。在未来几天,请留心注意Visual Studio博客的帖子,我们会深入讨论这些改进技术的细节。

我们严格的测试这些更改,以预测问题并提供最佳性能,但是不能替代真正世界的代码。我们需要你的帮助,所以请安装Preview5, 用你强大的解决方案试一下,并通过使用IDE的Report-a-problem工具来告诉我们您的使用感受。

 

工作效率的提高

Visual Studio“15”也有很多旨在提高工作效率的特性。

代码编辑

智能感知过滤现在在C#, VB, C++工程中可用了。当尝试复杂的API时, 你可以将范围缩小到你需要的类型(例如,只是方法、属性或事件)。在C#和Visual Basic中,我们确定所需的“目标类型“,在匹配该类型的列表中预选条目。这个加速了你的输入,也减轻了必须在给定位置上找出预期类型的负担。

VS15Preview5-TargetTypePreselection

在C++中,实验的“预测IntelliSense”功能显示智能感知结果筛选的列表,所以你不需要在很长的列表中滚动。根据需要的可能性,只有期待类型的项目被列出。你可以在工具->选项->文本编辑器->C/C++->实验下打开这个功能。

在XAML中,我们已经添加了智能感知X:Bind。 当你尝试绑定属性和事件时,它提供了一个完整的列表。如果引用到的命名空间已经存在,命名空间会自动补全前缀。XAML智能感知也已经更新,以筛选出类型和属性不匹配的。选择最接近的匹配,所以你只看到相关的结果,不必滚动一长串的类型列表。

在JavaScript中,我们已经完全重组语言服务以增强智能感知功能。以前,当键入时,JavaScript 引擎连续的执行你的代码来提供运行时的完全列表和签名帮助。对于静态的JavaScript代码来说,这个非常好,但是它经常提供不一致的编辑体验。新的语言服务使用静态分析,由TypeScript提供更多详细的智能感知,覆盖ES6/ES7,以及更一致的编辑体验。

VS15Preview5-IntelliSenseCompare

 

快速修复和的重构

为使代码可读,并促进您的开发工作流程,我们已经为C#和Visual Basic增加了快速修复和重构。Move Type to Matching File移动类型到一个新的有相同的名字文件。Sync File and Type Name可以重命名类型以匹配你的文件名(反之亦然)。最后,转换为差值的字符串融合了C#6.0和VB14的优点,通过把你的’string.Format’转换为插值字符串的表达式。

VS15Preview5-MoveType

 

代码导航

当你面对一段庞大的代码时,想确定你在哪块是一项有挑战性的工作。微软增加了一些新的导航功能,可帮助与此相关的操作。“转至”(按Ctrl+, 或Ctrl+T)可以让你快速找到你代码中的文件,类型,方法,和其他类型的对象。

VS15Preview5-GoTo

现在即使是在复杂的代码库中,也可以很容易的帮助你查找到所有的引用(Shift+F12)。在搜索结果中它提供了先进的分组、 筛选、 排序和 (对于某些语言) 彩色化显示,以便你清楚地了解那些引用。

VS15Preview5-FindAllReferences

 

调试

在 Preview 5 中,我们引进了此实验功能:Run to Click。您不再需要设置临时断点,来跳到并停止到你需要的代码所在位置。当调试器停止时,只需点击在你的鼠标悬停时,出现在代码行边上的那个图标。您的代码将在下次运行时,命中该行并停止。您可以在这里启用该特性:调试>选项>启用 Run to Click。

VS15Preview5-Debugger

 

尝试一下

对于在此版本的完整列表,以及一些已知的问题,查看 Visual Studio “15” Preview 5 Release Notes页。

关于Preview 5的几个重要的说明。第一,该preview版本是不提供客户支持的,所以不要在有非常重要工作的机器上安装它。第二,Preview 5可以和Visual Studio之前的版本一起工作,但是在你开始安装过程之前必须删除掉之前安装的任何Visual Studio 15预览安装。对于其他常见的问题,请查阅Preview 5 FAQ

一如往常,我们欢迎您的反馈。对于问题,请通过安装程序或者IDE本身的“报告问题”选项让我们知道。并且可以在开发论坛上跟踪您的反馈。对于建议,请通过UserVoice让我们知道。

最后,请浏览今天早些时候Mitra发布的帖子,去了解即将到来的2016年的开发者大会