<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Visual Studio 中文博客</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/visualstudio_cn/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/visualstudio_cn/feed.xml</link>
    <description />
    <lastBuildDate>Mon, 08 May 2017 09:48:02 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Visual Studio 2017 的实时单元测试</title>
      <link>https://docs.microsoft.com/archive/blogs/visualstudio_cn/visual-studio-2017-%E7%9A%84%E5%AE%9E%E6%97%B6%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95</link>
      <pubDate>Mon, 08 May 2017 09:48:02 GMT</pubDate>
      <dc:creator><![CDATA[DevDivChina]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/visualstudio_cn/?p=2326</guid>
      <description><![CDATA[[原文发表地址]: Live Unit Testing in Visual Studio 2017 RC

[原文发表时间]: November 18,...]]></description>
      <content:encoded><![CDATA[[原文发表地址]: <a href="https://blogs.msdn.microsoft.com/visualstudio/2016/11/18/live-unit-testing-visual-studio-2017-rc/">Live Unit Testing in Visual Studio 2017 RC</a>

[原文发表时间]: November 18, 2016

<span style="font-family: Microsoft YaHei;font-size: small">我们非常自豪地在Visual Studio 2017引进了一个新的特性叫实时单元测试！这个特性会使您很容易的维护产品质量和测试覆盖率，并且将生产力提升到一个全新的水平。想象下您正在一个完全不熟悉的代码库中修补一个缺陷，在您为了修补这个缺陷编辑完代码后，根据实时单元测试您可以立马知道系统受影响的部分。有了这个反馈，跟原来相比，当您修改代码时将会带给您额外的信心，让您的工作更富有成效，甚至让您喜欢上修复缺陷和编写单元测试，何乐而不为呢！</span>

<span style="font-family: Microsoft YaHei;font-size: small">当您编辑代码时，实时单元测试在后台自动运行受影响单元测试，并在编辑器中实时显示结果和代码覆盖率。除了对您的更改会对现有测试产生的影响提供反馈之外，您还可以即时获得有关您添加的新代码是否已经被一个或多个现有测试覆盖的反馈。这会很好的提醒您在错误修复或者添加功能时编写单元测试。 </span>

<span style="font-family: Microsoft YaHei;font-size: small">实时单元测试存在于Visual Studio 2017的企业版本中，它可用于面向.NET Framework的C#和VB项目。它使用VB和C#编译器在编译时测试代码。接下来，它对测试代码运行单元测试以生成数据，分析该数据以了解哪些测试覆盖了哪些代码行。 然后它使用这些数据运行那些受到给定编辑影响的测试，提供对编辑器本身的结果的即时反馈。 随着更多的编辑或更多的测试被添加或删除，它不断地更新用于识别受影响的测试的数据。 </span>

<span style="font-family: Microsoft YaHei;font-size: small"></span>

<span style="font-family: Microsoft YaHei"><span style="font-size: small"><b><span style="font-size: medium">如何启用实时单元测试</span></b><b></b> </span></span>

<span style="font-family: Microsoft YaHei;font-size: small">启用实时单元测试，通过打开顶层菜单栏中的Test命令，然后选择对应的命令来启用它，如下图所示。</span>

<span style="font-family: Microsoft YaHei;font-size: small"> <img src="https://msdnshared.blob.core.windows.net/media/2016/11/How-to-start-Live-Unit-Tests.png" /></span>

<span style="font-family: Microsoft YaHei;font-size: small">在Visual Studio里，实时单元测试适用于三个流行的单元测试框架， 即MSTest，xUnit和NUnit。使用这些时，您需要确保适配器和框架符合或超过以下给出的最低版本。请从现有项目中删除旧的适配器和测试框架引用（确保您删除的是 “Microsoft.VisualStudio.QualityTools.UnitTestFramework”的引用），并添加新的，如果实时单元测试不能正常工作。 你可以从NuGet.org得到所有这些。 </span>
<ul>
 	<li><span style="font-family: Microsoft YaHei;font-size: small">对于xUnit，您将需要xunit.runner.visualstudio 2.2.0-beta3-build 1187和xunit 2.0版本（或更高版本） </span></li>
 	<li><a><span style="font-family: Microsoft YaHei;font-size: small">对于</span></a><span style="font-family: Microsoft YaHei;font-size: small">NUnit，您需要NUnit3TestAdapter 3.5.1版本和NUnit版本3.5.0（或更高版本） </span></li>
 	<li><span style="font-family: Microsoft YaHei;font-size: small">对于MSTest，您将需要MSTest.TestAdapter 1.1.4-预览版和MSTest.TestFramework 1.0.5预览版（或更高版本）<b></b> </span></li>
</ul>
<b><span style="font-family: Microsoft YaHei;font-size: small"></span></b>

<span style="font-family: Microsoft YaHei"><span style="font-size: small"><span style="font-size: medium"><b></b></span></span></span> <span style="font-family: Microsoft YaHei"><span style="font-size: small"><span style="font-size: medium"><b>体验实时单元测试</b><b></b></span> </span></span>

<span style="font-family: Microsoft YaHei;font-size: small">启用后，实时单元测试可帮助您快速查看您所编写的代码是否被覆盖，以及覆盖该代码的测试是否通过，而无需离开编辑器。 单元测试结果和覆盖可视化在代码编辑器中逐行显示，如下面的示例图所示：<b></b> </span>

<img src="https://msdnshared.blob.core.windows.net/media/2016/11/clip_image00112.png" /><span style="font-family: Microsoft YaHei;font-size: small">如果一行可执行代码被至少一个失败的测试覆盖，实时单元测试将用红色“×”来标识它。 </span>

<span style="font-family: Microsoft YaHei;font-size: small"><img src="https://msdnshared.blob.core.windows.net/media/2016/11/clip_image0025.png" />如果一行可执行代码只被通过的测试覆盖，实时单元测试将用绿色“✓”来标识它。 </span>

<span style="font-family: Microsoft YaHei;font-size: small"><img src="https://msdnshared.blob.core.windows.net/media/2016/11/clip_image0031.png" />如果一行可执行代码没有被任何测试覆盖，实时单元测试将用蓝线来标识它。</span>

<span style="font-family: Microsoft YaHei;font-size: small"><img width="919" height="552" src="https://msdnshared.blob.core.windows.net/media/2016/11/LUT-Glyphs-in-the-IDE.png" /></span>

<span style="font-family: Microsoft YaHei;font-size: small">实时单元测试提供的实时代码覆盖和测试结果信息消除了手动选择和运行测试的负担。 实时反馈还用于当您的更改破坏了程序时立即通知您， 如果内嵌可视化结果从绿色“✓”变为红色“×”，您就知道您破坏了一个或多个测试。 </span>

<span style="font-family: Microsoft YaHei;font-size: small">在任何时间点，您可以将鼠标悬停在“✓”或“×”上，可以查看指定代码影响了多少处测试，如下图所示： </span>

<span style="font-family: Microsoft YaHei;font-size: small"><img width="581" height="68" src="https://msdnshared.blob.core.windows.net/media/2016/11/Hover-on-glyohs-to-see-count-of-tests.png" /></span>

<span style="font-family: Microsoft YaHei;font-size: small">你可以通过点击“✓”或“×</span><a><span style="font-family: Microsoft YaHei;font-size: small">”</span></a><span style="font-family: Microsoft YaHei;font-size: small">，查看指定代码影响了哪些测试，如下图所示。 </span>

<img width="656" height="174" src="https://msdnshared.blob.core.windows.net/media/2016/11/Click-on-glyohs-to-see-details-of-tests.png" />

<span style="font-family: Microsoft YaHei;font-size: small">当悬停在工具提示框中的错误的代码行上，它会扩展开提供更多信息，以便更好地了解故障，如下图所示。 </span>

<span style="font-family: Microsoft YaHei;font-size: small"><img width="704" height="199" src="https://msdnshared.blob.core.windows.net/media/2016/11/Expand-to-see-details-of-tests.png" /></span>

<span style="font-family: Microsoft YaHei;font-size: small">此外，您可以通过点击工具提示框中的信息直接导航到具体错误的代码行。 然后，通过失败的测试信息提示，您可以轻松地调试产品代码，进行编辑，并继续，然而实时单元测试仍在后台运行。 无需停止和重新启动实时单元测试进行调试、编辑等。 </span>

<span style="font-family: Microsoft YaHei;font-size: small">在任何时候，您都可以暂停或完全停止实时单元测试。 例如，当你正在重构代码，你知道单元测试会被破坏一段时间。它就可以打开顶层菜单栏中的Test命令，然后选择“暂停”或者“停止”命令，如下图所示。 </span>

<span style="font-family: Microsoft YaHei;font-size: small"><img width="816" height="305" src="https://msdnshared.blob.core.windows.net/media/2016/11/Live-Unit-Tests-under-Test-nav-drop-down.png" /></span>

<span style="font-family: Microsoft YaHei;font-size: small">暂停时，您将在编辑器中看不到任何覆盖可视化结果。 当您准备好再次查看它们时，可以通过单击实时单元测试菜单中的“继续”来取消暂停。 当处于暂停模式时，实时单元测试仍保留它迄今收集的所有数据。 在“继续”模式下，实时单元测试将进行必要的工作，以赶上暂停时进行的所有编辑，并将适当更新结果。 </span>

<span style="font-family: Microsoft YaHei;font-size: small">如果您愿意，也可以完全停止实时单元测试。 当停止实时单元测试后再次启动时，显示结果所需的时间比暂停后再继续时长些。 这是因为停止时它要清空了所有数据。 </span>

<span style="font-family: Microsoft YaHei"><span style="font-size: small"><b><span style="font-size: medium">总结</span></b><b></b> </span></span>

<span style="font-family: Microsoft YaHei;font-size: small">实时单元测试能提高开发人员生产率，测试覆盖率和软件质量。.NET开发人员，请在Visual Studio 2017中查看此功能。对于属于执行测试驱动开发的团队的开发人员，实时单元测试将游戏化其工作流程; 换句话说，他们的测试将首先失败，当他们实现每种方法，他们会看到它们变成绿色。 这种感觉就如同当你练习艺术时，获得一个旁边专注的看着你的教练的赞同! </span>

<span style="font-family: Microsoft YaHei;font-size: small">观看此</span><a href="https://channel9.msdn.com/events/connect/2016/171"><span style="font-family: Microsoft YaHei;font-size: small">实时单元测试视频</span></a><span style="font-family: Microsoft YaHei;font-size: small">，视频中我们详细演示了此功能。</span>]]></content:encoded>
    </item>
    <item>
      <title>不断壮大的Visual Studio家族产品</title>
      <link>https://docs.microsoft.com/archive/blogs/visualstudio_cn/%E4%B8%8D%E6%96%AD%E5%A3%AE%E5%A4%A7%E7%9A%84visual-studio%E5%AE%B6%E6%97%8F%E4%BA%A7%E5%93%81</link>
      <pubDate>Mon, 08 May 2017 07:01:36 GMT</pubDate>
      <dc:creator><![CDATA[DevDivChina]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/visualstudio_cn/?p=2315</guid>
      <description><![CDATA[[原文发表地址]: The expanding Visual Studio family of products

[原文发表时间]: November 16,...]]></description>
      <content:encoded><![CDATA[[原文发表地址]: <a href="https://blogs.msdn.microsoft.com/visualstudio/2016/11/16/visual-studio-family-of-products/">The expanding Visual Studio family of products</a>

[原文发表时间]: November 16, 2016

&nbsp;

<span style="font-family: Microsoft YaHei;font-size: small">我们的</span><a href="https://msdn.microsoft.com/magazine/mt788617"><span style="font-family: Microsoft YaHei;font-size: small">核心愿景</span></a><span style="font-family: Microsoft YaHei;font-size: small">是 “Any Developer, Any App, Any Platform”。 对于我们的Visual Studio系列产品，我们致力于为您带来最强大和最高效的开发工具和服务，使每一位开发人员可以开发出跨Windows、 iOS、Arndriod 以及 Linux 平台的移动为先和云为先的应用程序。</span>

<span style="font-family: Microsoft YaHei;font-size: small">我们现有的Visual Studio系列产品包括了市场上最全面的开发以及应用程序生命周期工具。业界领先的IDE，轻量级代码编辑器 - Visual Studio Code，使用Visual Studio Team Foundation Server和Visual Studio Team Services的内部部署以及基于云计算的团队协作服务。此外，我们还免费提供Visual Studio Dev Essentials服务和Visual Studio 订阅。</span>

<span style="font-family: Microsoft YaHei;font-size: small">今天，在纽约的</span><a href="https://connectevent.microsoft.com/"><span style="font-family: Microsoft YaHei;font-size: small">Connect(); 2016</span></a><span style="font-family: Microsoft YaHei;font-size: small"> 大会上， 我们宣布了</span><a href="https://www.visualstudio.com/vs/visual-studio-2017-rc"><span style="font-family: Microsoft YaHei;font-size: small">Visual Studio 2017 RC</span></a><span style="font-family: Microsoft YaHei;font-size: small"> 和</span><a href="https://www.visualstudio.com/tfs/"><span style="font-family: Microsoft YaHei;font-size: small">TFS 2017 RTM</span></a><span style="font-family: Microsoft YaHei;font-size: small">。我也很高兴看到Visual Studio 家族随着 </span><a href="https://blogs.msdn.microsoft.com/visualstudio/2016/11/16/visual-studio-for-mac/"><span style="font-family: Microsoft YaHei;font-size: small">Visual Studio for Mac</span></a><span style="font-family: Microsoft YaHei;font-size: small">和</span><a href="https://blogs.msdn.microsoft.com/visualstudio/2016/11/16/visual-studio-mobile-center/"><span style="font-family: Microsoft YaHei;font-size: small">Visual Studio Mobile Center</span></a><span style="font-family: Microsoft YaHei;font-size: small"> 的加入而继续壮大。</span>

<span style="font-family: Microsoft YaHei;font-size: small"><img width="1092" height="617" src="https://msdnshared.blob.core.windows.net/media/2016/11/VS-Family-of-Products1.png" /></span>

<span style="font-family: Microsoft YaHei"><span style="font-size: small"><b>Visual Studio 2017 RC</b>的重点在于提高了生产力，优化了一些基本功能（</span></span><a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/14/improved-overall-visual-studio-15-responsiveness/"><span style="font-family: Microsoft YaHei;font-size: small">VS 2017在各领域的性能都有所提升</span></a><span style="font-family: Microsoft YaHei;font-size: small">），云计算以及伟大的移动开发。要了解更多信息，请阅读John Montgomery的文章：</span><a href="https://blogs.msdn.microsoft.com/visualstudio/2016/11/16/visual-studio-2017-rc/"><span style="font-family: Microsoft YaHei;font-size: small">announcing Visual Studio 2017 RC</span></a><span style="font-family: Microsoft YaHei;font-size: small">。</span><a href="https://www.visualstudio.com/vs/visual-studio-2017-rc"><span style="font-family: Microsoft YaHei;font-size: small">VS 2017RC下载</span></a><span style="font-family: Microsoft YaHei;font-size: small">。</span>

<span style="font-family: Microsoft YaHei"><span style="font-size: small"><b>Visual Studio for Mac </b>是一个为MAC专门打造的新的Visual Studio IDE。它主要基于Xamarin、 ASP.Net Core 和 Azure来进行完整的客户端到云端的移动开发。要了解更多，请查阅Miguel de Icaza的文章：</span></span><a href="https://blogs.msdn.microsoft.com/visualstudio/2016/11/16/visual-studio-for-mac/"><span style="font-family: Microsoft YaHei;font-size: small"> introducing Visual Studio for Mac</span></a><span style="font-family: Microsoft YaHei;font-size: small">。可以从</span><a href="https://www.visualstudio.com/vs/visual-studio-mac/"><span style="font-family: Microsoft YaHei;font-size: small">这里</span></a><span style="font-family: Microsoft YaHei;font-size: small">下载VS for Mac。</span>

<span style="font-family: Microsoft YaHei"><span style="font-size: small"><b>Visual Studio Mobile Center</b>是“移动应用的控制中心”, 它将移动开发人员常用的多个服务集成到一个单一的集成了的服务中，使您能够在一个地方构建、测试、部署和监视所有云端的应用程序。要了解更多，请阅读Nat Friedman的文章：</span></span><a href="https://blogs.msdn.microsoft.com/visualstudio/2016/11/16/visual-studio-mobile-center/"><span style="font-family: Microsoft YaHei;font-size: small">elaborating on Visual Studio Mobile Center</span></a><span style="font-family: Microsoft YaHei;font-size: small">.</span>

<span style="font-family: Microsoft YaHei"><span style="font-size: small"><b>Team Foundation Server 2017 RTM</b><b>和</b><b>Visual Studio</b><b> </b><b>Team Services</b>已将Application Insights、包管理器、 代码搜索和一些第三方的扩展集成进来。要了解更多，请阅读Brian Harry的文章。</span></span><a href="https://www.visualstudio.com/tfs/"><span style="font-family: Microsoft YaHei;font-size: small">下载TFS和VSTS</span></a><span style="font-family: Microsoft YaHei;font-size: small">.</span>

<span style="font-family: Microsoft YaHei;font-size: small">我们希望你加入我们的</span><a href="https://channel9.msdn.com/events/Connect/2016"><span style="font-family: Microsoft YaHei;font-size: small">connect()；</span></a><span style="font-family: Microsoft YaHei;font-size: small">并全天享受100多个点播视频。如果你错过了活动，请回头查看会议以及现场问答的记录吧。享受connect()活动吧！</span>]]></content:encoded>
    </item>
    <item>
      <title>Visual Studio2017 起始页功能简介</title>
      <link>https://docs.microsoft.com/archive/blogs/visualstudio_cn/visual-studio2017-%E8%B5%B7%E5%A7%8B%E9%A1%B5%E5%8A%9F%E8%83%BD%E7%AE%80%E4%BB%8B</link>
      <pubDate>Fri, 05 May 2017 06:05:28 GMT</pubDate>
      <dc:creator><![CDATA[DevDivChina]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/visualstudio_cn/?p=2296</guid>
      <description><![CDATA[[原文发表地址]: Harness the Power of the Redesigned Start Page

[原文发表时间]: November 29, 2016

我们的Visual...]]></description>
      <content:encoded><![CDATA[[原文发表地址]: <a href="https://blogs.msdn.microsoft.com/visualstudio/2016/11/29/harness-the-power-of-the-redesigned-start-page/">Harness the Power of the Redesigned Start Page</a>

[原文发表时间]: November 29, 2016

<span style="font-family: Microsoft YaHei;font-size: small">我们的</span><a href="https://www.visualstudio.com/vs/visual-studio-2017-rc/"><span style="font-family: Microsoft YaHei;font-size: small">Visual Studio 2017</span></a><span style="font-family: Microsoft YaHei;font-size: small">，具有快速安装、性能更好和效率更高的特点。效率更高的体现之一就是重新设计的起始页，新的起始页会帮助您更快的进行编码和开始工作。</span>

<img width="1001" height="563" src="https://msdnshared.blob.core.windows.net/media/2016/11/Full_IDE.png" />

&nbsp;

<b><span style="font-family: Microsoft YaHei;font-size: medium">最近使用列表</span></b>

<span style="font-family: Microsoft YaHei;font-size: small">我们已经从大家的反馈中了解到MRU(最近使用列表)是起始页最有价值的一部分，所以我们觉得是时候给它应有的重视了。为了帮助您快速找到你想要找的，现在每个MRU项目显示一个图标，来表示它是一个项目、解决方案或文件夹、本地项目文件路径和一个远程项目尚未在磁盘上的远程URL。</span><a></a><a><span style="font-family: Microsoft YaHei;font-size: small">随着对打开文件夹功能的支持，我们也添加了对最近打开的文件夹的支持。新的</span></a><span style="font-family: Microsoft YaHei;font-size: small">MRU也会按日期、历史记录和所固定的项目来分组，让您可以通过MRU轻松访问那些重要的项目。</span>

<span style="font-family: Microsoft YaHei;font-size: small">为了帮助您可以在多个机器上工作来提高效率，我们还在MRU增加了同步功能。如果您克隆了一个存储库，例如Visual Studio 团队服务或GitHub，Visual Studio会将这个存储库显示到您同一帐户的任何Visual Studio实例。然后，您可以从MRU选择要克隆的项目，在该代码库继续你的工作。</span>

<img width="566" height="568" src="https://msdnshared.blob.core.windows.net/media/2016/11/StartPage-in-VS2017RC-MRU.png" />

<i><span style="font-family: Microsoft YaHei;font-size: small">显示固定的远程存储库、文件夹和项目的MRU</span></i>

<b><span style="font-family: Microsoft YaHei;font-size: small"></span></b>

<b><span style="font-family: Microsoft YaHei;font-size: medium">新建项目</span></b>

<span style="font-family: Microsoft YaHei;font-size: small">无论你是初次使用 Visual Studio，还是经验丰富的用户，很多时候你都需要创建一个新的项目。经我们调查研究显示，“新建项目…” 命令是起始页最常用的功能之一，但在与你们很多人沟通之后发现，你们在操作过程中经常会创建一些相同的项目。为了加快速度，起始页现在允许你搜索你想要创建的特定的项目类型。有了这一变化，用户将不再需要点击新建项目就可以找到想要的项目类型。除此之外，</span>

<span style="font-family: Microsoft YaHei;font-size: small">起始页将会记录并显示你最近创建的项目，并允许你直接在起始页新建项目，省略了在新建项目对话框中进行查找和选择的步骤。如果用户登录到Visual Studio, 此列表将会同步用户设备中的项目模板。</span>

<img src="https://msdnshared.blob.core.windows.net/media/2016/11/StartPage-in-VS2017RC-Recent-Templates.png" />

<i><span style="font-family: Microsoft YaHei;font-size: small">    近期项目模板</span></i>

&nbsp;

<em><span style="font-family: Microsoft YaHei;font-size: small"></span></em>  <img src="https://msdnshared.blob.core.windows.net/media/2016/11/StartPage-in-VS2017RC-Search.png" />

<span style="font-family: Microsoft YaHei"><span style="font-size: small"><i>    搜索web</i><i>项目模板</i></span></span>

<b><span style="font-family: Microsoft YaHei;font-size: small"></span></b>

<b><span style="font-family: Microsoft YaHei;font-size: small"></span></b>

<b><span style="font-family: Microsoft YaHei;font-size: medium">打开</span></b>

<span style="font-family: Microsoft YaHei;font-size: small">无论你的代码是在本地、在TFS服务器上、在VSTS上或者分享到GitHub。我们想要您更容易地查找、下载和打开该工程。</span>

<span style="font-family: Microsoft YaHei;font-size: small">我们新增了打开文件夹功能，同时保留了打开工程/解决方案的命令，使您在有或者没有VS解决方案文件时都能打开一个代码库。</span>

<span style="font-family: Microsoft YaHei;font-size: small">对于在TFS 上的或者托管在 VSTS 上的代码，都支持开箱即用。你可以简单的通过点击”签出自” 标题下的Visual Studio Team Services来克隆存储库。这部分也是第三方可扩展的。GitHub 是服务提供商之一，并使用了这个扩展。对于那些已经安装了更新的 GitHub 扩展的用户，你会注意到 GitHub 会和VSTS一起出现。我们也正在努力加载更多的服务提供商，这样不管你的项目在什么服务上，就都可以轻松的连接到您的代码了。</span>

<img src="https://msdnshared.blob.core.windows.net/media/2016/11/StartPage-in-VS2017RC-Open.png" />

<b><span style="font-family: Microsoft YaHei;font-size: small"></span></b>

<span style="font-family: Microsoft YaHei"><span style="font-size: small"><i>从VSTS</i><i>，GitHub</i><i>或本地磁盘中打开</i></span></span>

<span style="font-family: Microsoft YaHei"><span style="font-size: medium"><b></b></span></span>

<span style="font-family: Microsoft YaHei"><span style="font-size: medium"><b>开发人员新闻</b><b></b></span></span>

<span style="font-family: Microsoft YaHei;font-size: small">我们一直在尽力确保新闻保持新鲜并且和原文一致。尽管有一些用户会通过阅读起始页的新闻来开始他们的一天，但据我们了解，并不是所有人都这样的。为了节省你的空间并专注于代码，你现在可以将新闻部分折叠起来。同时不用担心你会错过最新的新闻，因为一旦有新的消息出现，一个小的带有提示的标志将会出现在我们新闻上。</span>

<img width="863" height="497" src="https://msdnshared.blob.core.windows.net/media/2016/11/StartPage-in-VS2017RC-News-Badge.png" />

<i><span style="font-family: Microsoft YaHei;font-size: small">折叠起来的带有提示标志的开发者新闻</span></i>

<b><span style="font-family: Microsoft YaHei;font-size: medium"></span></b>

<b><span style="font-family: Microsoft YaHei;font-size: medium">显示起始页</span></b>

<span style="font-family: Microsoft YaHei;font-size: small">在之前的反馈中，我们收到一些对于如何显示起始页命令的困惑。我们设想起始页是你开始操作的起点，所以我们把这个命令放到”文件”菜单，以方便用户更快地访问。</span>

<b><span style="font-family: Microsoft YaHei;font-size: medium"></span></b>

<b><span style="font-family: Microsoft YaHei;font-size: medium">致谢</span></b>

<span style="font-family: Microsoft YaHei;font-size: small">我们最新的起始页，旨在带给您更高效、更有用以及更加个性化的用户体验，通过快速访问带来更大价值，具有同步代码库和项目模板以及可以让你更加专注于你的代码的能力。</span>

<span style="font-family: Microsoft YaHei"><span style="font-size: small"><u>下载Visual Studio 2017 RC </u>并且分享你的反馈给我们。通过installer或者Visual Studio IDE右上角的</span></span><a href="https://docs.microsoft.com/en-us/visualstudio/ide/how-to-report-a-problem-with-visual-studio-2017"><span style="font-family: Microsoft YaHei;font-size: small">发送问题</span></a><span style="font-family: Microsoft YaHei;font-size: small">的选项让我们知道您的问题，你可以在</span><a href="https://developercommunity.visualstudio.com/index.html"><span style="font-family: Microsoft YaHei;font-size: small">developer community portal</span></a><span style="font-family: Microsoft YaHei;font-size: small">追踪你的反馈。通过</span><a href="https://visualstudio.uservoice.com/forums/121579-visual-studio"><span style="font-family: Microsoft YaHei;font-size: small">UserVoice</span></a><span style="font-family: Microsoft YaHei;font-size: small">让我们知道您的建议。</span>]]></content:encoded>
    </item>
    <item>
      <title>Visual Studio”15“的内存溢出崩溃锐减</title>
      <link>https://docs.microsoft.com/archive/blogs/visualstudio_cn/visual-studio15%E7%9A%84%E5%86%85%E5%AD%98%E6%BA%A2%E5%87%BA%E5%B4%A9%E6%BA%83%E9%94%90%E5%87%8F-2</link>
      <pubDate>Fri, 24 Mar 2017 05:27:48 GMT</pubDate>
      <dc:creator><![CDATA[DevDivChina]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/visualstudio_cn/?p=2286</guid>
      <description><![CDATA[[原文发表地址]: Reduced Out of Memory Crashes in Visual Studio “15”  [原文发表时间]: October 12, 2016  &nbsp;...]]></description>
      <content:encoded><![CDATA[<p>[原文发表地址]: <a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/12/reduced-out-of-memory-crashes-in-visual-studio-15/">Reduced Out of Memory Crashes in Visual Studio “15”</a>  <p>[原文发表时间]: October 12, 2016  <p>&nbsp; <p><font size="2" face="Microsoft YaHei">这是</font><a href="https://aka.ms/vs/15/preview/vs_enterprise"><font size="2" face="Microsoft YaHei">Visual Studio “15” Preview 5</font></a><font size="2" face="Microsoft YaHei">中关于性能改善五部分系列中的第三篇博客。前两篇博客介绍的是在Visual Studio “15”中</font><a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/10/faster-visual-studio-15-startup/"><font size="2" face="Microsoft YaHei">启动更快</font></a><font size="2" face="Microsoft YaHei">和</font><a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/11/shorter-solution-load-time-in-visual-studio-15/"><font size="2" face="Microsoft YaHei">项目解决方案加载时间更短</font></a><font size="2" face="Microsoft YaHei">。</font>  <p><font size="2" face="Microsoft YaHei">Visual Studio集多种功能于一身，数百万的开发人员都依赖于它进行高效的工作。支持如此多的功能，而且随着开发者期望的响应速度的提高，内存消耗就有所增加。然而，在Visual Studio 2015中，在某些情况下的内存使用量过大。这导致了一些不利的影响，例如内存溢出崩溃，UI反应迟缓。我们收到了大量用户对于这些问题的反馈。在VS “15”中我们正在解决这些问题，同时不会削弱Visual Studio丰富的功能和性能。</font>  <p><font size="2" face="Microsoft YaHei">我们正在优化Visual Studio的很多功能，这篇文章介绍了三个具体领域的进展： JavaScript与 TypeScript语言服务，调试器符号文件加载，VS中的Git支持。在本文中我将对每一个测试场景比较以下两个指标，来展示我们所取得的进展：</font>  <p><font size="2" face="Microsoft YaHei"><strong>峰值虚拟内存</strong>: Visual Studio是一个32位的应用，这意味着消耗的虚拟内存可以达到4GB。超过上限的内存分配会导致Visual Studio出现内存溢出错误(OOM)而崩溃。峰值虚拟内存是一个用来度量进程的内存将如何接近所限制的4GB的指标，或者换句话说，可以度量一个进程是如何接近崩溃的指标。</font>  <p><font size="2" face="Microsoft YaHei"><strong>峰值私有工作集</strong>：一个包含了进程执行的代码或进程涉及的数据的虚拟内存的子集需要被放在物理内存中。“工作集”是这样的物理内存消耗的度量标准。这种工作集的一部分称作“私有工作集”，是属于一个给定进程的内存，并且是单独属于这个进程的。因为这样的内存不是进程间共享的，他们在系统上的消耗相对较高。本文的测量数据包括了Visual Studio (devenv.exe)的峰值私有工作集和相关的附属进程。</font>  <p><font face="Microsoft YaHei"><font size="2"><b></b></font></font>&nbsp; <p><font face="Microsoft YaHei"><font size="4"><b>JavaScript</b><b>语言服务</b><b></b></font></font>  <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font size="2" face="Microsoft YaHei">超过三分之一的Visual Studio开发人员定期编写JavaScript (JS)，使JS语言服务成为在相当数量的Visual Studio会话中需要加载的一部分。JS语言服务提供的功能如智能感知、代码导航和一些使JS编辑高效的功能。</font>  <p><font size="2" face="Microsoft YaHei">为了支持这种生产力特性并且确保他们响应迅速，语言服务消耗了不少的内存。内存的使用量取决于解决方案的特性、工程的数量、文件的数量以及文件大小。此外，JS语言服务通常会和另一种语言服务一起被加载，例如C#，这会增加进程的内存压力。因此，提高JS语言服务的内存占用对减少VS中内存溢出崩溃是至关重要的。</font>  <p><font size="2" face="Microsoft YaHei">在VS “15”中，我们想要确保Visual Studio可靠性不会被JS代码造成的内存消耗而不利地影响。为了实现这个目标而不影响JavaScript的编辑体验，在VS“15” Preview 5中我们已经将整个JS语言服务移动到一个可以与Visual Studio进行通信的附属进程Node,js中。我们还合并了JavaScript和TypeScript语言服务，这意味着我们通过实现两种语言服务被同时加载来减少内存。</font>  <p><font size="2" face="Microsoft YaHei">为了测量对内存的影响，我们在以下场景中比较了Visual Studio 2015 Update 3 和VS “15” Preview 5中的峰值虚拟内存和峰值私有工作集：</font>  <ul> <li><font size="2" face="Microsoft YaHei">打开</font><a href="https://github.com/aspnetboilerplate/aspnetboilerplate-samples/tree/master/SimpleTaskSystem/SimpleTaskSystem.WebSpaDurandal"><font size="2" face="Microsoft YaHei">WebSpaDurandal</font></a><font size="2" face="Microsoft YaHei">解决方案。这是一个Asp.Net的例子</font>  <li><font size="2" face="Microsoft YaHei">创建并启用_references.js的自动同步</font>  <li><font size="2" face="Microsoft YaHei">打开10个JS文件</font>  <li><font size="2" face="Microsoft YaHei">进行编辑，启动完成，创建/删除文件，运行格式工具</font></li></ul> <p><font size="2" face="Microsoft YaHei">这是比较结果：</font>  <p><font size="2" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/03/Reduced-Out-Of-memory-Perf-JavaScript-Language-Servcie.png"><img title="Reduced-Out-Of-memory-Perf-JavaScript-Language-Servcie" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="Reduced-Out-Of-memory-Perf-JavaScript-Language-Servcie" src="https://msdnshared.blob.core.windows.net/media/2017/03/Reduced-Out-Of-memory-Perf-JavaScript-Language-Servcie_thumb.png" width="725" height="439"></a></font>  <p><font size="2" face="Microsoft YaHei"><strong>表1：JavaScript语言服务的内存使用量</strong></font>  <p><font size="2" face="Microsoft YaHei">Visual Studio的峰值虚拟内存使用减少了33%，这为今天面临内存溢出崩溃的JS开发人员提供了较大的帮助。总体的峰值私有工作集代表Preview 5中Visual Studio进程和我们的附属进程的总和，与Visual Studio 2015中的差不多。</font>  <p><font face="Microsoft YaHei"><font size="2"><b></b></font></font>&nbsp; <p><font face="Microsoft YaHei"><font size="4"><b>调试器符号文件加载</b><b></b></font></font>  <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font size="2" face="Microsoft YaHei">符号信息对有效的调试来说是至关重要的。Windows里大多数的微软编辑器将符号信息存储在一个PDB文件里面。一个PDB文件包含大量代码信息，例如，函数名称，可执行的二进制文件的偏移量，类的类型信息和可执行文件中定义的结构，资源文件名称等等。当Visual Studio调试器显示一个调用堆栈，计算一个变量或表达式等等时，它加载相应的PDB文件并读取相关信息。</font>  <p><font size="2" face="Microsoft YaHei">在Visual Studio 2012之前，用复杂的</font><a href="https://msdn.microsoft.com/en-us/library/jj620914.aspx"><font size="2" face="Microsoft YaHei">natvis</font></a><font size="2" face="Microsoft YaHei">视图评估类型的性能不够理想。这是因为大量的类型信息会根据需要从PDB获取，这将导致对磁盘上的PDB文件随机的输入输出。在多数驱动器上这都将表现不佳。</font>  <p><font size="2" face="Microsoft YaHei">在Visual Studio 2012 中，C++调试器中增加了一个新特性：会在早期的调试环节从PDB文件中提前提取大量的符号数据。这就显著地改进了性能。</font>  <p><font size="2" face="Microsoft YaHei">不幸的是，在提前提取符号数据时，这种优化错误很多。在某些情况下，它导致了比需要的更多的符号数据被读取。例如，显示调用堆栈时，栈上的所有模块的符号数据都将被提取到，即使是那些在Locals 或者Watch 窗口里不需要被评估类型的数据。在大型的项目中有很多可用的符号数据模型，这将导致在每一个调试会话中使用大量的内存。</font>  <p><font size="2" face="Microsoft YaHei">在VS “15” Preview 5中，我们已经采取措施来减少符号信息的内存使用，同时保持预先提取的性能优势。我们现在只有在模块被要求评估和显示一个变量或者表达式时启用预提取。</font>  <p><font size="2" face="Microsoft YaHei">我们通过以下场景来测试对内存的影响：</font>  <ul> <li><font size="2" face="Microsoft YaHei">加载</font><a href="https://www.unrealengine.com/ue4-on-github"><font size="2" face="Microsoft YaHei">Unreal Engine</font></a><font size="2" face="Microsoft YaHei">解决方案，UE4.sln</font>  <li><font size="2" face="Microsoft YaHei">启动Unreal Engine Editor</font>  <li><font size="2" face="Microsoft YaHei">将VS调试器附加到Unreal Engine进程</font>  <li><font size="2" face="Microsoft YaHei">在E:\UEngine\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl_Variadics.inl的640行设置断点</font>  <li><font size="2" face="Microsoft YaHei">直到停在断点</font></li></ul> <p><font size="2" face="Microsoft YaHei">这是结果：</font>  <p><font size="2" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/03/Reduced-Out-Of-memory-Perf-Symbol-loading.png"><img title="Reduced-Out-Of-memory-Perf-Symbol-loading" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="Reduced-Out-Of-memory-Perf-Symbol-loading" src="https://msdnshared.blob.core.windows.net/media/2017/03/Reduced-Out-Of-memory-Perf-Symbol-loading_thumb.png" width="681" height="411"></a></font>  <p><font size="2" face="Microsoft YaHei"><strong>表2：当VS调试器被附加到Unreal Engine进程时的内存使用情况</strong></font>  <p><font size="2" face="Microsoft YaHei">在此场景中由于内存溢出导致VS 2015崩溃。VS “15” Preview 5消耗虚拟内存3GB和私有工作集1.8GB。相比以前版本，这显然得到了改善，但也还不是期望的值。我们将继续在以后的VS “15”开发中减少本地调试方案的内存使用。</font>  <p><font face="Microsoft YaHei"><font size="2"><b></b></font></font>&nbsp; <p><font face="Microsoft YaHei"><font size="4"><b>Visual Studio</b><b>的</b><b>Git</b><b>支持</b><b></b></font></font>  <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font size="2" face="Microsoft YaHei">当我们在Visual Studio中引入Git支持时，我们使用了一个名为libgit2的库。对于各种操作，libgit2会映射整个git索引文件到内存中。索引文件的大小与代码库大小成正比。这意味着对于大的代码库，Git操作会导致大量的虚拟内存消耗。如果VS已经遭遇虚拟内存压力，这些消耗会导致内存溢出崩溃。</font>  <p><font size="2" face="Microsoft YaHei">在VS “15” Preview 5，我们不再使用libgit2而是调用git.exe，因此避免了VS进程的虚拟内存消耗。我们使用git.exe不仅为了减少了VS进程的内存使用量，而且它也使我们增加和构建功能更加容易。</font>  <p><font size="2" face="Microsoft YaHei">为了测量一个Git操作对于内存增量的影响，我们在下面的场景中比较了Visual Studio 2015 Update 3和VS “15” Preview 5：</font>  <ul> <li><font size="2" face="Microsoft YaHei">打开Team Explore的 </font><a href="https://www.chromium.org/Home"><font size="2" face="Microsoft YaHei">Chromium</font></a><font size="2" face="Microsoft YaHei"> repo</font>  <li><font size="2" face="Microsoft YaHei">到“Changes”面板查看待定的更改</font>  <li><font size="2" face="Microsoft YaHei">点击F5进行刷新</font></li></ul> <p><font size="2" face="Microsoft YaHei">这是结果：</font>  <p><font size="2" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/03/Reduced-Out-Of-memory-Perf-Git-Support-in-Visual-Studio.png"><img title="Reduced-Out-Of-memory-Perf-Git-Support-in-Visual-Studio" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="Reduced-Out-Of-memory-Perf-Git-Support-in-Visual-Studio" src="https://msdnshared.blob.core.windows.net/media/2017/03/Reduced-Out-Of-memory-Perf-Git-Support-in-Visual-Studio_thumb.png" width="689" height="416"></a></font>  <p><font size="2" face="Microsoft YaHei"><strong>表3：当Team Explore的“Changes”面板被刷新时内存使用量的增长情况</strong></font>  <p><font size="2" face="Microsoft YaHei">VS 2015中，在更新操作期间虚拟内存消耗大约300MB。在VS “15”中，没有显著的虚拟内存的增加。VS 2015的私有工作集的增量是79MB，而VS “15”是72MB，完全是来自git.exe.</font>  <p><b><font size="4" face="Microsoft YaHei"></font></b>&nbsp; <p><b><font size="4" face="Microsoft YaHei">总结</font></b>  <p><font size="2" face="Microsoft YaHei">在 VS “15”中，我们正在努力减少Visual Studio的内存使用量。在这篇文章中，我介绍了我们在三个功能上所取得的进展。但是，在取得成功的道路上我们仍然有很多的工作要做。</font>  <p><font size="2" face="Microsoft YaHei">您可以通过以下途径来帮助我们：</font>  <p><font size="2" face="Microsoft YaHei">第一种，我们会观察所有发布版本的遥测，包括预发布版本。所以请下载并使用</font><a href="https://aka.ms/vs/15/preview/vs_enterprise"><font size="2" face="Microsoft YaHei">VS “15” Preview 5</font></a><font size="2" face="Microsoft YaHei">。我们能在您的日常使用中获取到的外部资源越多，得到的信息就越准确，这将会极大地帮助到我们。</font>  <p><font size="2" face="Microsoft YaHei">第二种，使用</font><a href="https://go.microsoft.com/fwlink/?LinkId=829399"><font size="2" face="Microsoft YaHei">Report-a-problem</font></a><font size="2" face="Microsoft YaHei">工具来报告高内存（或者其他质量）问题。报告里最好能够通过提供给我们一个例子或者一个真实的方案来最终重现问题。我知道也不是只能这么做，如果能在报告问题时附加一段问题重现记录（我们的Report-a-problem工具可以帮你很容易做到）并且尽可能描述更多的信息就更好了。</font>]]></content:encoded>
    </item>
    <item>
      <title>Visual Studio”15“的内存溢出崩溃锐减</title>
      <link>https://docs.microsoft.com/archive/blogs/visualstudio_cn/visual-studio15%E7%9A%84%E5%86%85%E5%AD%98%E6%BA%A2%E5%87%BA%E5%B4%A9%E6%BA%83%E9%94%90%E5%87%8F</link>
      <pubDate>Fri, 24 Mar 2017 05:24:40 GMT</pubDate>
      <dc:creator><![CDATA[DevDivChina]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/visualstudio_cn/?p=2276</guid>
      <description><![CDATA[[原文发表地址]: Reduced Out of Memory Crashes in Visual Studio “15”  [原文发表时间]: October 12, 2016  &nbsp;...]]></description>
      <content:encoded><![CDATA[<p>[原文发表地址]: <a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/12/reduced-out-of-memory-crashes-in-visual-studio-15/">Reduced Out of Memory Crashes in Visual Studio “15”</a>  <p>[原文发表时间]: October 12, 2016  <p>&nbsp; <p><font size="2" face="Microsoft YaHei">这是</font><a href="https://aka.ms/vs/15/preview/vs_enterprise"><font size="2" face="Microsoft YaHei">Visual Studio “15” Preview 5</font></a><font size="2" face="Microsoft YaHei">中关于性能改善五部分系列中的第三篇博客。前两篇博客介绍的是在Visual Studio “15”中</font><a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/10/faster-visual-studio-15-startup/"><font size="2" face="Microsoft YaHei">启动更快</font></a><font size="2" face="Microsoft YaHei">和</font><a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/11/shorter-solution-load-time-in-visual-studio-15/"><font size="2" face="Microsoft YaHei">项目解决方案加载时间更短</font></a><font size="2" face="Microsoft YaHei">。</font>  <p><font size="2" face="Microsoft YaHei">Visual Studio集多种功能于一身，数百万的开发人员都依赖于它进行高效的工作。支持如此多的功能，而且随着开发者期望的响应速度的提高，内存消耗就有所增加。然而，在Visual Studio 2015中，在某些情况下的内存使用量过大。这导致了一些不利的影响，例如内存溢出崩溃，UI反应迟缓。我们收到了大量用户对于这些问题的反馈。在VS “15”中我们正在解决这些问题，同时不会削弱Visual Studio丰富的功能和性能。</font>  <p><font size="2" face="Microsoft YaHei">我们正在优化Visual Studio的很多功能，这篇文章介绍了三个具体领域的进展： JavaScript与 TypeScript语言服务，调试器符号文件加载，VS中的Git支持。在本文中我将对每一个测试场景比较以下两个指标，来展示我们所取得的进展：</font>  <p><font size="2" face="Microsoft YaHei"><strong>峰值虚拟内存</strong>: Visual Studio是一个32位的应用，这意味着消耗的虚拟内存可以达到4GB。超过上限的内存分配会导致Visual Studio出现内存溢出错误(OOM)而崩溃。峰值虚拟内存是一个用来度量进程的内存将如何接近所限制的4GB的指标，或者换句话说，可以度量一个进程是如何接近崩溃的指标。</font>  <p><font size="2" face="Microsoft YaHei"><strong>峰值私有工作集</strong>：一个包含了进程执行的代码或进程涉及的数据的虚拟内存的子集需要被放在物理内存中。“工作集”是这样的物理内存消耗的度量标准。这种工作集的一部分称作“私有工作集”，是属于一个给定进程的内存，并且是单独属于这个进程的。因为这样的内存不是进程间共享的，他们在系统上的消耗相对较高。本文的测量数据包括了Visual Studio (devenv.exe)的峰值私有工作集和相关的附属进程。</font>  <p><font face="Microsoft YaHei"><font size="2"><b></b></font></font>&nbsp; <p><font face="Microsoft YaHei"><font size="4"><b>JavaScript</b><b>语言服务</b><b></b></font></font>  <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font size="2" face="Microsoft YaHei">超过三分之一的Visual Studio开发人员定期编写JavaScript (JS)，使JS语言服务成为在相当数量的Visual Studio会话中需要加载的一部分。JS语言服务提供的功能如智能感知、代码导航和一些使JS编辑高效的功能。</font>  <p><font size="2" face="Microsoft YaHei">为了支持这种生产力特性并且确保他们响应迅速，语言服务消耗了不少的内存。内存的使用量取决于解决方案的特性、工程的数量、文件的数量以及文件大小。此外，JS语言服务通常会和另一种语言服务一起被加载，例如C#，这会增加进程的内存压力。因此，提高JS语言服务的内存占用对减少VS中内存溢出崩溃是至关重要的。</font>  <p><font size="2" face="Microsoft YaHei">在VS “15”中，我们想要确保Visual Studio可靠性不会被JS代码造成的内存消耗而不利地影响。为了实现这个目标而不影响JavaScript的编辑体验，在VS“15” Preview 5中我们已经将整个JS语言服务移动到一个可以与Visual Studio进行通信的附属进程Node,js中。我们还合并了JavaScript和TypeScript语言服务，这意味着我们通过实现两种语言服务被同时加载来减少内存。</font>  <p><font size="2" face="Microsoft YaHei">为了测量对内存的影响，我们在以下场景中比较了Visual Studio 2015 Update 3 和VS “15” Preview 5中的峰值虚拟内存和峰值私有工作集：</font>  <ul> <li><font size="2" face="Microsoft YaHei">打开</font><a href="https://github.com/aspnetboilerplate/aspnetboilerplate-samples/tree/master/SimpleTaskSystem/SimpleTaskSystem.WebSpaDurandal"><font size="2" face="Microsoft YaHei">WebSpaDurandal</font></a><font size="2" face="Microsoft YaHei">解决方案。这是一个Asp.Net的例子</font>  <li><font size="2" face="Microsoft YaHei">创建并启用_references.js的自动同步</font>  <li><font size="2" face="Microsoft YaHei">打开10个JS文件</font>  <li><font size="2" face="Microsoft YaHei">进行编辑，启动完成，创建/删除文件，运行格式工具</font></li></ul> <p><font size="2" face="Microsoft YaHei">这是比较结果：</font>  <p><font size="2" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/03/Reduced-Out-Of-memory-Perf-JavaScript-Language-Servcie.png"><img title="Reduced-Out-Of-memory-Perf-JavaScript-Language-Servcie" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="Reduced-Out-Of-memory-Perf-JavaScript-Language-Servcie" src="https://msdnshared.blob.core.windows.net/media/2017/03/Reduced-Out-Of-memory-Perf-JavaScript-Language-Servcie_thumb.png" width="725" height="439"></a></font>  <p><font size="2" face="Microsoft YaHei"><strong>表1：JavaScript语言服务的内存使用量</strong></font>  <p><font size="2" face="Microsoft YaHei">Visual Studio的峰值虚拟内存使用减少了33%，这为今天面临内存溢出崩溃的JS开发人员提供了较大的帮助。总体的峰值私有工作集代表Preview 5中Visual Studio进程和我们的附属进程的总和，与Visual Studio 2015中的差不多。</font>  <p><font face="Microsoft YaHei"><font size="2"><b></b></font></font>&nbsp; <p><font face="Microsoft YaHei"><font size="4"><b>调试器符号文件加载</b><b></b></font></font>  <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font size="2" face="Microsoft YaHei">符号信息对有效的调试来说是至关重要的。Windows里大多数的微软编辑器将符号信息存储在一个PDB文件里面。一个PDB文件包含大量代码信息，例如，函数名称，可执行的二进制文件的偏移量，类的类型信息和可执行文件中定义的结构，资源文件名称等等。当Visual Studio调试器显示一个调用堆栈，计算一个变量或表达式等等时，它加载相应的PDB文件并读取相关信息。</font>  <p><font size="2" face="Microsoft YaHei">在Visual Studio 2012之前，用复杂的</font><a href="https://msdn.microsoft.com/en-us/library/jj620914.aspx"><font size="2" face="Microsoft YaHei">natvis</font></a><font size="2" face="Microsoft YaHei">视图评估类型的性能不够理想。这是因为大量的类型信息会根据需要从PDB获取，这将导致对磁盘上的PDB文件随机的输入输出。在多数驱动器上这都将表现不佳。</font>  <p><font size="2" face="Microsoft YaHei">在Visual Studio 2012 中，C++调试器中增加了一个新特性：会在早期的调试环节从PDB文件中提前提取大量的符号数据。这就显著地改进了性能。</font>  <p><font size="2" face="Microsoft YaHei">不幸的是，在提前提取符号数据时，这种优化错误很多。在某些情况下，它导致了比需要的更多的符号数据被读取。例如，显示调用堆栈时，栈上的所有模块的符号数据都将被提取到，即使是那些在Locals 或者Watch 窗口里不需要被评估类型的数据。在大型的项目中有很多可用的符号数据模型，这将导致在每一个调试会话中使用大量的内存。</font>  <p><font size="2" face="Microsoft YaHei">在VS “15” Preview 5中，我们已经采取措施来减少符号信息的内存使用，同时保持预先提取的性能优势。我们现在只有在模块被要求评估和显示一个变量或者表达式时启用预提取。</font>  <p><font size="2" face="Microsoft YaHei">我们通过以下场景来测试对内存的影响：</font>  <ul> <li><font size="2" face="Microsoft YaHei">加载</font><a href="https://www.unrealengine.com/ue4-on-github"><font size="2" face="Microsoft YaHei">Unreal Engine</font></a><font size="2" face="Microsoft YaHei">解决方案，UE4.sln</font>  <li><font size="2" face="Microsoft YaHei">启动Unreal Engine Editor</font>  <li><font size="2" face="Microsoft YaHei">将VS调试器附加到Unreal Engine进程</font>  <li><font size="2" face="Microsoft YaHei">在E:\UEngine\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl_Variadics.inl的640行设置断点</font>  <li><font size="2" face="Microsoft YaHei">直到停在断点</font></li></ul> <p><font size="2" face="Microsoft YaHei">这是结果：</font>  <p><font size="2" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/03/Reduced-Out-Of-memory-Perf-Symbol-loading.png"><img title="Reduced-Out-Of-memory-Perf-Symbol-loading" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="Reduced-Out-Of-memory-Perf-Symbol-loading" src="https://msdnshared.blob.core.windows.net/media/2017/03/Reduced-Out-Of-memory-Perf-Symbol-loading_thumb.png" width="681" height="411"></a></font>  <p><font size="2" face="Microsoft YaHei"><strong>表2：当VS调试器被附加到Unreal Engine进程时的内存使用情况</strong></font>  <p><font size="2" face="Microsoft YaHei">在此场景中由于内存溢出导致VS 2015崩溃。VS “15” Preview 5消耗虚拟内存3GB和私有工作集1.8GB。相比以前版本，这显然得到了改善，但也还不是期望的值。我们将继续在以后的VS “15”开发中减少本地调试方案的内存使用。</font>  <p><font face="Microsoft YaHei"><font size="2"><b></b></font></font>&nbsp; <p><font face="Microsoft YaHei"><font size="4"><b>Visual Studio</b><b>的</b><b>Git</b><b>支持</b><b></b></font></font>  <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font size="2" face="Microsoft YaHei">当我们在Visual Studio中引入Git支持时，我们使用了一个名为libgit2的库。对于各种操作，libgit2会映射整个git索引文件到内存中。索引文件的大小与代码库大小成正比。这意味着对于大的代码库，Git操作会导致大量的虚拟内存消耗。如果VS已经遭遇虚拟内存压力，这些消耗会导致内存溢出崩溃。</font>  <p><font size="2" face="Microsoft YaHei">在VS “15” Preview 5，我们不再使用libgit2而是调用git.exe，因此避免了VS进程的虚拟内存消耗。我们使用git.exe不仅为了减少了VS进程的内存使用量，而且它也使我们增加和构建功能更加容易。</font>  <p><font size="2" face="Microsoft YaHei">为了测量一个Git操作对于内存增量的影响，我们在下面的场景中比较了Visual Studio 2015 Update 3和VS “15” Preview 5：</font>  <ul> <li><font size="2" face="Microsoft YaHei">打开Team Explore的 </font><a href="https://www.chromium.org/Home"><font size="2" face="Microsoft YaHei">Chromium</font></a><font size="2" face="Microsoft YaHei"> repo</font>  <li><font size="2" face="Microsoft YaHei">到“Changes”面板查看待定的更改</font>  <li><font size="2" face="Microsoft YaHei">点击F5进行刷新</font></li></ul> <p><font size="2" face="Microsoft YaHei">这是结果：</font>  <p><font size="2" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/03/Reduced-Out-Of-memory-Perf-Git-Support-in-Visual-Studio.png"><img title="Reduced-Out-Of-memory-Perf-Git-Support-in-Visual-Studio" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="Reduced-Out-Of-memory-Perf-Git-Support-in-Visual-Studio" src="https://msdnshared.blob.core.windows.net/media/2017/03/Reduced-Out-Of-memory-Perf-Git-Support-in-Visual-Studio_thumb.png" width="689" height="416"></a></font>  <p><font size="2" face="Microsoft YaHei"><strong>表3：当Team Explore的“Changes”面板被刷新时内存使用量的增长情况</strong></font>  <p><font size="2" face="Microsoft YaHei">VS 2015中，在更新操作期间虚拟内存消耗大约300MB。在VS “15”中，没有显著的虚拟内存的增加。VS 2015的私有工作集的增量是79MB，而VS “15”是72MB，完全是来自git.exe.</font>  <p><b><font size="4" face="Microsoft YaHei"></font></b>&nbsp; <p><b><font size="4" face="Microsoft YaHei">总结</font></b>  <p><font size="2" face="Microsoft YaHei">在 VS “15”中，我们正在努力减少Visual Studio的内存使用量。在这篇文章中，我介绍了我们在三个功能上所取得的进展。但是，在取得成功的道路上我们仍然有很多的工作要做。</font>  <p><font size="2" face="Microsoft YaHei">您可以通过以下途径来帮助我们：</font>  <p><font size="2" face="Microsoft YaHei">第一种，我们会观察所有发布版本的遥测，包括预发布版本。所以请下载并使用</font><a href="https://aka.ms/vs/15/preview/vs_enterprise"><font size="2" face="Microsoft YaHei">VS “15” Preview 5</font></a><font size="2" face="Microsoft YaHei">。我们能在您的日常使用中获取到的外部资源越多，得到的信息就越准确，这将会极大地帮助到我们。</font>  <p><font size="2" face="Microsoft YaHei">第二种，使用</font><a href="https://go.microsoft.com/fwlink/?LinkId=829399"><font size="2" face="Microsoft YaHei">Report-a-problem</font></a><font size="2" face="Microsoft YaHei">工具来报告高内存（或者其他质量）问题。报告里最好能够通过提供给我们一个例子或者一个真实的方案来最终重现问题。我知道也不是只能这么做，如果能在报告问题时附加一段问题重现记录（我们的Report-a-problem工具可以帮你很容易做到）并且尽可能描述更多的信息就更好了。</font>]]></content:encoded>
    </item>
    <item>
      <title>Visual Studio “15”响应速度更快</title>
      <link>https://docs.microsoft.com/archive/blogs/visualstudio_cn/visual-studio-15%E5%93%8D%E5%BA%94%E9%80%9F%E5%BA%A6%E6%9B%B4%E5%BF%AB-2</link>
      <pubDate>Thu, 23 Mar 2017 01:56:01 GMT</pubDate>
      <dc:creator><![CDATA[DevDivChina]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/visualstudio_cn/?p=2235</guid>
      <description><![CDATA[[原文发表地址]: Improved overall Visual Studio “15” Responsiveness  [原文发表时间]: October 14, 2016  &nbsp;...]]></description>
      <content:encoded><![CDATA[<p>[原文发表地址]: <a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/14/improved-overall-visual-studio-15-responsiveness/">Improved overall Visual Studio “15” Responsiveness</a>  <p>[原文发表时间]: October 14, 2016  <p>&nbsp; <p><font size="2" face="Microsoft YaHei">这是包含Visual Studio “15” 性能提升5部分系列的最后一篇博客了。</font>  <p><font size="2" face="Microsoft YaHei">这个系列中包含了下边的内容：</font>  <p><font size="2" face="Microsoft YaHei">· </font><a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/10/faster-visual-studio-15-startup/"><font size="2" face="Microsoft YaHei">Visual Studio "15" 启动更快了</font></a>  <p><font size="2" face="Microsoft YaHei">· </font><a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/11/shorter-solution-load-time-in-visual-studio-15/"><font size="2" face="Microsoft YaHei">VS“15”项目解决方案加载时间更短</font></a>  <p><font size="2" face="Microsoft YaHei">· </font><a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/12/reduced-out-of-memory-crashes-in-visual-studio-15/"><font size="2" face="Microsoft YaHei">VS“15”中由于内存溢出产生的崩溃现象减少了</font></a>  <p><font size="2" face="Microsoft YaHei">· </font><a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/13/faster-c-solution-load-and-build-performance-with-visual-studio-15/"><font size="2" face="Microsoft YaHei">VS“15”让C++工程更快</font></a>  <p><font size="2" face="Microsoft YaHei">· VS “15” 响应速度更快</font>  <p><font size="2" face="Microsoft YaHei">在这篇博客中我们会着重介绍下在VS “15” 预览版5中我们所做的一些让Visual Studio在日常使用过程中 反应更加灵敏的改进。首先，我们先讲一下在调试性能、Git源代码管理和XAML编辑方面的改进，以及怎样通过管理插件来改进你的输入体验。</font>  <p><font size="2" face="Microsoft YaHei"></font>&nbsp; <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font face="Microsoft YaHei"><font size="4"><b>调试更快速并且不会因为编辑造成延迟</b><b></b></font></font>  <p><font size="2" face="Microsoft YaHei">在Visual studio 2005中，我们引进了WPF工程、windows窗体工程和可管理控制台项目的托管进程，通过在后台启动一个可用于下一个调试会话的进程，来使“开始调试”速度更快。该功能会导致Visual Studio在按下“停止调试”时暂时性的几秒钟内无响应或者是只能在停止调试会话之后才能使用Visual Studio。</font>  <p><font size="2" face="Microsoft YaHei">在预览版5当中，我们关闭了托管进程，并且优化了“开始调试”，这就使得如没有托管过程一样快速，而对于从未使用过托管过程的项目（例如ASP.NET，Universal Windows和C ++）来说可能会更快。例如，下边是一些我们在测试机器上所统计的</font><a href="https://github.com/Microsoft/Appsample-Photosharing"><font size="2" face="Microsoft YaHei">UWP照片共享应用程序</font></a><font size="2" face="Microsoft YaHei">、一个针对于可视化的C++应用程序和一个简单的WPF应用程序的启动时间对比图：</font>  <p><b><font size="2" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/03/Lower-Start-Debugging-Times1.png"><img title="Lower-Start-Debugging-Times1" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="Lower-Start-Debugging-Times1" src="https://msdnshared.blob.core.windows.net/media/2017/03/Lower-Start-Debugging-Times1_thumb.png" width="565" height="370"></a></font></b>  <p><font size="2" face="Microsoft YaHei">为了实现以上提升，我们在开始调试路径上优化了初始化诊断工具窗口和智能追踪（默认情况下会在每一个调试会话开始的时候显示）的相关时间花费。我们修改了智能追踪的初始化模式，这样的话它就可以在其他调试过程和应用启动的时候被初始化。另外，我们通过智能追踪记录和Visual Studio进程在断点处停止时的交互的方式消除了几个低效率进程。</font>  <p><font size="2" face="Microsoft YaHei">我们还删除了几个与诊断工具窗口相关的必须在Visual Studio UI主线程上同步运行代码的后台线程。 这使得我们可以异步进行ETW事件收集，从而在重新启动调试时，不必等待旧的ETW会话完成。</font>  <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font face="Microsoft YaHei"><font size="4"><b></b></font></font>&nbsp; <p><font face="Microsoft YaHei"><font size="4"><b>Git.exe</b><b> 的源代码操作更快</b></font></font>  <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><a name="OLE_LINK3"><font size="2" face="Microsoft YaHei">当我们在</font></a><font size="2" face="Microsoft YaHei">Visual Studio中引入Git支持时，我们使用了一个名为libgit2的库。 使用libgit2时，我们会遇到和从命令提示符使用git.exe的功能时的一个不同的问题，libgit2会为主Visual Studio进程添加100 MB的内存压力。</font>  <p><font size="2" face="Microsoft YaHei">在VS15预览版本5中，我们已经用在进程外调用git.exe去替换那种实现方式， 所以尽管git还是使用机器的内存，但是不会增加内存压力给主VS进程。我们也期望随着时间的推移使用Git.exe也允许我们使得git操作更快。到目前为止，我们发现用git 克隆较大的代码库时操作更快， 比如用Visual Studio “15”克隆Roslyn.NET 编译器到我们的机器上比用Visual Studio 2015速度快了30%: 在Visual Studio “15”上需要4分钟，而在Visual Studio 2015 上需要5分40秒。以下视频展示了此信息（为了方便起见，视频是以4倍的速度播放的）：</font>  <p><a href="https://msdnshared.blob.core.windows.net/media/2016/10/Git-Checkout-Perf.mp4"><img src="https://msdnshared.blob.core.windows.net/media/2016/10/Cloning-the-Roslyn-.NET-Compiler-repo-Compare-VS-2015-to-VS-15-Video.png" width="500" height="460"></a></p> <p><font size="2" face="Microsoft YaHei">在接下来的版本中，我们希望通过这个新的框架可以使更多操作更快速。</font>  <p><font size="2" face="Microsoft YaHei">我们还改进了在使用git时的一个最大问题：用命令行切换分支导致Visual Studio去一个个的重新加载解决方案中的所有项目。在文件更改提示对话框中，我们将“重新加载所有”替换为“重新加载解决方案”：</font>  <p><font size="2" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/03/File-Change-Notification-Dialog-Reload-All-replaced-with-Reload-Solution.png"><img title="File-Change-Notification-Dialog-Reload-All-replaced-with-Reload-Solution" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="File-Change-Notification-Dialog-Reload-All-replaced-with-Reload-Solution" src="https://msdnshared.blob.core.windows.net/media/2017/03/File-Change-Notification-Dialog-Reload-All-replaced-with-Reload-Solution_thumb.png" width="732" height="226"></a></font>  <p><font size="2" face="Microsoft YaHei">这将启动单个异步解决方案重新加载，这比单个项目加载快的多。</font>  <p><font face="Microsoft YaHei"><font size="2"><b></b></font></font>&nbsp; <p><font face="Microsoft YaHei"><font size="4"><b>提高</b><b>XAML Tab的切换速度</b></font></font>  <p><font size="2" face="Microsoft YaHei">基于统计数据和客户的反馈，我们发现在XAML标签切换时，每天有25% 的开发人员至少会遇到一次标签切换延迟大于1秒的情况。 再进一步调查中，我们发现这些延迟是由运行标记编译器引起的，我们已经用XAML语言服务去使得这个变得更快。以下视频显示了我们所做的改进：</font>  <p><a href="https://msdnshared.blob.core.windows.net/media/2016/10/XAML-Tab-Switch-Perf.mp4"><img src="https://msdnshared.blob.core.windows.net/media/2016/10/XAML-Tab-Switch-Perf-Video.png" width="650" height="460"></a></p> <p><font size="2" face="Microsoft YaHei">标记编译器为每一个XAML 文件创建g.i.* 文件，其中包含代表XAML文件命名的元素字段，使您能够从代码中引用那些命名元素。例如，给定&lt;Button x:Name=”myButton” /&gt;, g.i.* 文件包含一个名字为Button类型的按钮，会允许你在代码中使用“myButton”。</font>  <p><font size="2" face="Microsoft YaHei">某些用户的操作，比如保存或者切换未保存的XAML文件将导致Visual Studio更新g.i.* 文件以确保当打开隐藏代码文件时IntelliSense有命名元素的最新视图。在已经发布的版本中，g.i.* 文件的更新是由标记编辑器来完成。在托管（C#/VB）项目中，标记编辑器在UI线程上运行，这就导致在复杂项目中的选项卡之间的切换延迟比较明显。</font>  <p><font size="2" face="Microsoft YaHei">我们在预览版本5中解决了这个问题，通过利用XAMl文件的语言服务知识去确定填充IntelliSens的名称和字段类型， 然后在后台进程中用Roslyn更新g.i.* 文件。这大大快于运行标记编译器，因为语言服务已经完成了那些会导致编译器运行缓慢的解析和类型元数据加载。如果g.i.* 文件不存在（例如：在重命名XAML文件后，或者在删除项目的obj目录之后），我们需要去运行标记编辑器来重新生成g.i.* 文件，您可能仍会看到延迟。</font>  <p><font face="Microsoft YaHei"><font size="2"><b></b></font></font>&nbsp; <p><font face="Microsoft YaHei"><font size="4"><b>敏捷的</b><b>XAML输入体验</b></font></font>  <p><font size="2" face="Microsoft YaHei">XAML语言服务中UI延迟的主要原因和初始化、响应元素数据更改和加载设计程序集有关。我们通过把工作转移到后台线程来处理这三个延迟问题。 </font> <p><font size="2" face="Microsoft YaHei">我们还对加载元数据的设计进行了以下改进：</font>  <ul> <li><font size="2" face="Microsoft YaHei">设计元数据时的新的序列化层，极大的减少了跨边界调用。</font>  <li><font size="2" face="Microsoft YaHei">为WPF项目重用设计器程序集的缓存。 对所有项目类型重用缓存。缓存是在每次数据更新时被重新创建的。</font>  <li><font size="2" face="Microsoft YaHei">设计程序集元数据在会话期间存储而不是在每一次元数据更新时就重新计算。 </font></li></ul> <p><font size="2" face="Microsoft YaHei">这些更新还允许XAML IntelliSense 在解决方案完全加载之前就可用了。</font>  <p><font size="2" face="Microsoft YaHei"></font>&nbsp; <p><font face="Microsoft YaHei"><font size="4"><b>找出哪些扩展程序导致输入延迟</b><b></b></font></font>  <p><font size="2" face="Microsoft YaHei">我们收到了许多关于输入时延迟的反馈。 我们正在继续修正，以改善这些问题。但在许多情况下，输入时的延迟是由于在输入时有扩展程序在运行代码引起的。为了帮您确定是否有扩展会影响您的输入体验，我们已在帮助 - &gt;管理Visual Studio性能里添加了报告，并会在我们检测到扩展程序延迟输入时通知您。</font>  <p><font size="2" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/03/Notification-Showing-Extension-Slowing-Down-Visual-Studio1.png"><img title="Notification-Showing-Extension-Slowing-Down-Visual-Studio1" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="Notification-Showing-Extension-Slowing-Down-Visual-Studio1" src="https://msdnshared.blob.core.windows.net/media/2017/03/Notification-Showing-Extension-Slowing-Down-Visual-Studio1_thumb.png" width="614" height="353"></a></font>  <p><font size="2" face="Microsoft YaHei">扩展程序延迟输入的通知</font>  <p><font size="2" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/03/Manage-Visual-Studio-Performance-Extensions11.png"><img title="Manage-Visual-Studio-Performance-Extensions1" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="Manage-Visual-Studio-Performance-Extensions1" src="https://msdnshared.blob.core.windows.net/media/2017/03/Manage-Visual-Studio-Performance-Extensions1_thumb1.png" width="613" height="406"></a></font>  <p><font size="2" face="Microsoft YaHei">你可以在帮助 - &gt;管理Visual Studio性能中看到更多关于扩展的详细信息。</font>  <p><font size="2" face="Microsoft YaHei"></font>&nbsp; <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font face="Microsoft YaHei"><font size="4"><b>开始尝试并且报告问题吧</b></font></font>  <p><font size="2" face="Microsoft YaHei">我们正在继续改进Visual Studio的响应能力，这篇文章包含了我们在预览版5中完成的一些功能。我们需要您的帮助，来将我们的努力集中在对您最重要的领域，所以请下载Visual Studio '15'Preview 5，并使用</font><a href="https://go.microsoft.com/fwlink/?LinkId=829399"><font size="2" face="Microsoft YaHei">Report-a-Problem</font></a><font size="2" face="Microsoft YaHei">工具去报告可以使Visual Studio变得更好的任何问题吧。</font>]]></content:encoded>
    </item>
    <item>
      <title>Visual Studio “15”响应速度更快</title>
      <link>https://docs.microsoft.com/archive/blogs/visualstudio_cn/visual-studio-15%E5%93%8D%E5%BA%94%E9%80%9F%E5%BA%A6%E6%9B%B4%E5%BF%AB</link>
      <pubDate>Wed, 22 Mar 2017 10:11:17 GMT</pubDate>
      <dc:creator><![CDATA[DevDivChina]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/visualstudio_cn/?p=2205</guid>
      <description><![CDATA[[原文发表地址]: Improved overall Visual Studio “15” Responsiveness  [原文发表时间]: October 14, 2016  &nbsp;...]]></description>
      <content:encoded><![CDATA[<p>[原文发表地址]: <a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/14/improved-overall-visual-studio-15-responsiveness/">Improved overall Visual Studio “15” Responsiveness</a>  <p>[原文发表时间]: October 14, 2016  <p>&nbsp; <p><font size="2" face="Microsoft YaHei">这是包含Visual Studio “15” 性能提升5部分系列的最后一篇博客了。</font>  <p><font size="2" face="Microsoft YaHei">这个系列中包含了下边的内容：</font>  <p><font size="2" face="Microsoft YaHei">· </font><a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/10/faster-visual-studio-15-startup/"><font size="2" face="Microsoft YaHei">Visual Studio "15" 启动更快了</font></a>  <p><font size="2" face="Microsoft YaHei">· </font><a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/11/shorter-solution-load-time-in-visual-studio-15/"><font size="2" face="Microsoft YaHei">VS“15”项目解决方案加载时间更短</font></a>  <p><font size="2" face="Microsoft YaHei">· </font><a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/12/reduced-out-of-memory-crashes-in-visual-studio-15/"><font size="2" face="Microsoft YaHei">VS“15”中由于内存溢出产生的崩溃现象减少了</font></a>  <p><font size="2" face="Microsoft YaHei">· </font><a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/13/faster-c-solution-load-and-build-performance-with-visual-studio-15/"><font size="2" face="Microsoft YaHei">VS“15”让C++工程更快</font></a>  <p><font size="2" face="Microsoft YaHei">· VS “15” 响应速度更快</font>  <p><font size="2" face="Microsoft YaHei">在这篇博客中我们会着重介绍下在VS “15” 预览版5中我们所做的一些让Visual Studio在日常使用过程中 反应更加灵敏的改进。首先，我们先讲一下在调试性能、Git源代码管理和XAML编辑方面的改进，以及怎样通过管理插件来改进你的输入体验。</font>  <p><font size="2" face="Microsoft YaHei"></font>&nbsp; <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font face="Microsoft YaHei"><font size="4"><b>调试更快速并且不会因为编辑造成延迟</b><b></b></font></font>  <p><font size="2" face="Microsoft YaHei">在Visual studio 2005中，我们引进了WPF工程、windows窗体工程和可管理控制台项目的托管进程，通过在后台启动一个可用于下一个调试会话的进程，来使“开始调试”速度更快。该功能会导致Visual Studio在按下“停止调试”时暂时性的几秒钟内无响应或者是只能在停止调试会话之后才能使用Visual Studio。</font>  <p><font size="2" face="Microsoft YaHei">在预览版5当中，我们关闭了托管进程，并且优化了“开始调试”，这就使得如没有托管过程一样快速，而对于从未使用过托管过程的项目（例如ASP.NET，Universal Windows和C ++）来说可能会更快。例如，下边是一些我们在测试机器上所统计的</font><a href="https://github.com/Microsoft/Appsample-Photosharing"><font size="2" face="Microsoft YaHei">UWP照片共享应用程序</font></a><font size="2" face="Microsoft YaHei">、一个针对于可视化的C++应用程序和一个简单的WPF应用程序的启动时间对比图：</font>  <p><b><font size="2" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/03/Lower-Start-Debugging-Times1.png"><img title="Lower-Start-Debugging-Times1" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="Lower-Start-Debugging-Times1" src="https://msdnshared.blob.core.windows.net/media/2017/03/Lower-Start-Debugging-Times1_thumb.png" width="565" height="370"></a></font></b>  <p><font size="2" face="Microsoft YaHei">为了实现以上提升，我们在开始调试路径上优化了初始化诊断工具窗口和智能追踪（默认情况下会在每一个调试会话开始的时候显示）的相关时间花费。我们修改了智能追踪的初始化模式，这样的话它就可以在其他调试过程和应用启动的时候被初始化。另外，我们通过智能追踪记录和Visual Studio进程在断点处停止时的交互的方式消除了几个低效率进程。</font>  <p><font size="2" face="Microsoft YaHei">我们还删除了几个与诊断工具窗口相关的必须在Visual Studio UI主线程上同步运行代码的后台线程。 这使得我们可以异步进行ETW事件收集，从而在重新启动调试时，不必等待旧的ETW会话完成。</font>  <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font face="Microsoft YaHei"><font size="4"><b></b></font></font>&nbsp; <p><font face="Microsoft YaHei"><font size="4"><b>Git.exe</b><b> 的源代码操作更快</b></font></font>  <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><a name="OLE_LINK3"><font size="2" face="Microsoft YaHei">当我们在</font></a><font size="2" face="Microsoft YaHei">Visual Studio中引入Git支持时，我们使用了一个名为libgit2的库。 使用libgit2时，我们会遇到和从命令提示符使用git.exe的功能时的一个不同的问题，libgit2会为主Visual Studio进程添加100 MB的内存压力。</font>  <p><font size="2" face="Microsoft YaHei">在VS15预览版本5中，我们已经用在进程外调用git.exe去替换那种实现方式， 所以尽管git还是使用机器的内存，但是不会增加内存压力给主VS进程。我们也期望随着时间的推移使用Git.exe也允许我们使得git操作更快。到目前为止，我们发现用git 克隆较大的代码库时操作更快， 比如用Visual Studio “15”克隆Roslyn.NET 编译器到我们的机器上比用Visual Studio 2015速度快了30%: 在Visual Studio “15”上需要4分钟，而在Visual Studio 2015 上需要5分40秒。以下视频展示了此信息（为了方便起见，视频是以4倍的速度播放的）：</font>  <p><a href="https://msdnshared.blob.core.windows.net/media/2016/10/Git-Checkout-Perf.mp4"><img src="https://msdnshared.blob.core.windows.net/media/2016/10/Cloning-the-Roslyn-.NET-Compiler-repo-Compare-VS-2015-to-VS-15-Video.png" width="500" height="460"></a></p> <p><font size="2" face="Microsoft YaHei">在接下来的版本中，我们希望通过这个新的框架可以使更多操作更快速。</font>  <p><font size="2" face="Microsoft YaHei">我们还改进了在使用git时的一个最大问题：用命令行切换分支导致Visual Studio去一个个的重新加载解决方案中的所有项目。在文件更改提示对话框中，我们将“重新加载所有”替换为“重新加载解决方案”：</font>  <p><font size="2" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/03/File-Change-Notification-Dialog-Reload-All-replaced-with-Reload-Solution.png"><img title="File-Change-Notification-Dialog-Reload-All-replaced-with-Reload-Solution" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="File-Change-Notification-Dialog-Reload-All-replaced-with-Reload-Solution" src="https://msdnshared.blob.core.windows.net/media/2017/03/File-Change-Notification-Dialog-Reload-All-replaced-with-Reload-Solution_thumb.png" width="732" height="226"></a></font>  <p><font size="2" face="Microsoft YaHei">这将启动单个异步解决方案重新加载，这比单个项目加载快的多。</font>  <p><font face="Microsoft YaHei"><font size="2"><b></b></font></font>&nbsp; <p><font face="Microsoft YaHei"><font size="4"><b>提高</b><b>XAML Tab的切换速度</b></font></font>  <p><font size="2" face="Microsoft YaHei">基于统计数据和客户的反馈，我们发现在XAML标签切换时，每天有25% 的开发人员至少会遇到一次标签切换延迟大于1秒的情况。 再进一步调查中，我们发现这些延迟是由运行标记编译器引起的，我们已经用XAML语言服务去使得这个变得更快。以下视频显示了我们所做的改进：</font>  <p><a href="https://msdnshared.blob.core.windows.net/media/2016/10/XAML-Tab-Switch-Perf.mp4"><img src="https://msdnshared.blob.core.windows.net/media/2016/10/XAML-Tab-Switch-Perf-Video.png" width="650" height="460"></a></p> <p><font size="2" face="Microsoft YaHei">标记编译器为每一个XAML 文件创建g.i.* 文件，其中包含代表XAML文件命名的元素字段，使您能够从代码中引用那些命名元素。例如，给定&lt;Button x:Name=”myButton” /&gt;, g.i.* 文件包含一个名字为Button类型的按钮，会允许你在代码中使用“myButton”。</font>  <p><font size="2" face="Microsoft YaHei">某些用户的操作，比如保存或者切换未保存的XAML文件将导致Visual Studio更新g.i.* 文件以确保当打开隐藏代码文件时IntelliSense有命名元素的最新视图。在已经发布的版本中，g.i.* 文件的更新是由标记编辑器来完成。在托管（C#/VB）项目中，标记编辑器在UI线程上运行，这就导致在复杂项目中的选项卡之间的切换延迟比较明显。</font>  <p><font size="2" face="Microsoft YaHei">我们在预览版本5中解决了这个问题，通过利用XAMl文件的语言服务知识去确定填充IntelliSens的名称和字段类型， 然后在后台进程中用Roslyn更新g.i.* 文件。这大大快于运行标记编译器，因为语言服务已经完成了那些会导致编译器运行缓慢的解析和类型元数据加载。如果g.i.* 文件不存在（例如：在重命名XAML文件后，或者在删除项目的obj目录之后），我们需要去运行标记编辑器来重新生成g.i.* 文件，您可能仍会看到延迟。</font>  <p><font face="Microsoft YaHei"><font size="2"><b></b></font></font>&nbsp; <p><font face="Microsoft YaHei"><font size="4"><b>敏捷的</b><b>XAML输入体验</b></font></font>  <p><font size="2" face="Microsoft YaHei">XAML语言服务中UI延迟的主要原因和初始化、响应元素数据更改和加载设计程序集有关。我们通过把工作转移到后台线程来处理这三个延迟问题。 </font> <p><font size="2" face="Microsoft YaHei">我们还对加载元数据的设计进行了以下改进：</font>  <ul> <li><font size="2" face="Microsoft YaHei">设计元数据时的新的序列化层，极大的减少了跨边界调用。</font>  <li><font size="2" face="Microsoft YaHei">为WPF项目重用设计器程序集的缓存。 对所有项目类型重用缓存。缓存是在每次数据更新时被重新创建的。</font>  <li><font size="2" face="Microsoft YaHei">设计程序集元数据在会话期间存储而不是在每一次元数据更新时就重新计算。 </font></li></ul> <p><font size="2" face="Microsoft YaHei">这些更新还允许XAML IntelliSense 在解决方案完全加载之前就可用了。</font>  <p><font size="2" face="Microsoft YaHei"></font>&nbsp; <p><font face="Microsoft YaHei"><font size="4"><b>找出哪些扩展程序导致输入延迟</b><b></b></font></font>  <p><font size="2" face="Microsoft YaHei">我们收到了许多关于输入时延迟的反馈。 我们正在继续修正，以改善这些问题。但在许多情况下，输入时的延迟是由于在输入时有扩展程序在运行代码引起的。为了帮您确定是否有扩展会影响您的输入体验，我们已在帮助 - &gt;管理Visual Studio性能里添加了报告，并会在我们检测到扩展程序延迟输入时通知您。</font>  <p><font size="2" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/03/Notification-Showing-Extension-Slowing-Down-Visual-Studio1.png"><img title="Notification-Showing-Extension-Slowing-Down-Visual-Studio1" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="Notification-Showing-Extension-Slowing-Down-Visual-Studio1" src="https://msdnshared.blob.core.windows.net/media/2017/03/Notification-Showing-Extension-Slowing-Down-Visual-Studio1_thumb.png" width="614" height="353"></a></font>  <p><font size="2" face="Microsoft YaHei">扩展程序延迟输入的通知</font>  <p><font size="2" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/03/Manage-Visual-Studio-Performance-Extensions1.png"><img title="Manage-Visual-Studio-Performance-Extensions1" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="Manage-Visual-Studio-Performance-Extensions1" src="https://msdnshared.blob.core.windows.net/media/2017/03/Manage-Visual-Studio-Performance-Extensions1_thumb.png" width="613" height="406"></a></font>  <p><font size="2" face="Microsoft YaHei">你可以在帮助 - &gt;管理Visual Studio性能中看到更多关于扩展的详细信息。</font>  <p><font size="2" face="Microsoft YaHei"></font>&nbsp; <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font face="Microsoft YaHei"><font size="4"><b>开始尝试并且报告问题吧</b></font></font>  <p><font size="2" face="Microsoft YaHei">我们正在继续改进Visual Studio的响应能力，这篇文章包含了我们在预览版5中完成的一些功能。我们需要您的帮助，来将我们的努力集中在对您最重要的领域，所以请下载Visual Studio '15'Preview 5，并使用</font><a href="https://go.microsoft.com/fwlink/?LinkId=829399"><font size="2" face="Microsoft YaHei">Report-a-Problem</font></a><font size="2" face="Microsoft YaHei">工具去报告可以使Visual Studio变得更好的任何问题吧。</font>]]></content:encoded>
    </item>
    <item>
      <title>Visual Studio “15” Preview 5 发布公告</title>
      <link>https://docs.microsoft.com/archive/blogs/visualstudio_cn/visual-studio-15-preview-5-%E5%8F%91%E5%B8%83%E5%85%AC%E5%91%8A</link>
      <pubDate>Fri, 03 Mar 2017 10:23:58 GMT</pubDate>
      <dc:creator><![CDATA[DevDivChina]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/visualstudio_cn/?p=2136</guid>
      <description><![CDATA[[原文发表地址]: Announcing Visual Studio “15” Preview 5  [原文发表时间]: October 5, 2016  &nbsp; 今天我们发布了Visual...]]></description>
      <content:encoded><![CDATA[<p>[原文发表地址]: <a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/05/announcing-visual-studio-15-preview-5/">Announcing Visual Studio “15” Preview 5</a>  <p>[原文发表时间]: October 5, 2016  <p>&nbsp; <p><font size="2" face="Microsoft YaHei">今天我们发布了</font><a href="https://www.visualstudio.com/visual-studio-pre-release-downloads/"><b><font size="2" face="Microsoft YaHei">Visual Studio “15” Preview 5</font></b></a><font size="2" face="Microsoft YaHei">版本。对于Preview 5版本, 我想主要介绍下性能方面的改进，在接下来的几天，我们还会有后续的博客来描述我们已经可以看到的性能提升。我打算主要说明下那些已经可以提高效率的改进点。</font>  <p><a href="https://aka.ms/vs/15/preview/vs_enterprise"><font size="2" face="Microsoft YaHei">启动安装程序</font></a><font size="2" face="Microsoft YaHei">，并阅读下文，你也可以获取</font><a href="https://www.visualstudio.com/news/releasenotes/vs15-relnotes"><font size="2" face="Microsoft YaHei">发布说明</font></a><font size="2" face="Microsoft YaHei">来了解详情。</font>  <p><font size="2" face="Microsoft YaHei"></font>&nbsp; <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font size="4" face="Microsoft YaHei"><strong>性能与内存效率的大改进</strong></font>  <p><font size="2" face="Microsoft YaHei">我想根据这个并行对比视频，给你展示所有的性能改进。这个视频是比较打开 Visual Studio 并加载整个</font><a href="https://github.com/dotnet/roslyn/issues/14940"><font size="2" face="Microsoft YaHei">.NET 编译器平台"Roslyn"的解决方案</font></a><font size="2" face="Microsoft YaHei">，Visual Studio '15' 用时30秒，而Visual Studio 2015用时60秒。</font>  <p><font size="2" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/03/VS15Preview5-Visual-Studio-2015-vs-Visual-Studio-15-Roslyn-Solution-Load-Perf-Screenshot.png"><img title="VS15Preview5-Visual-Studio-2015-vs-Visual-Studio-15-Roslyn-Solution-Load-Perf-Screenshot" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="VS15Preview5-Visual-Studio-2015-vs-Visual-Studio-15-Roslyn-Solution-Load-Perf-Screenshot" src="https://msdnshared.blob.core.windows.net/media/2017/03/VS15Preview5-Visual-Studio-2015-vs-Visual-Studio-15-Roslyn-Solution-Load-Perf-Screenshot_thumb.png" width="847" height="463"></a></font>  <p><a href="https://msdnshared.blob.core.windows.net/media/2016/10/VS15Preview5-Visual-Studio-2015-vs-Visual-Studio-15-Roslyn-Solution-Load-Perf.mp4"><font size="2" face="Microsoft YaHei"></font></a> <p><font size="2" face="Microsoft YaHei">更快的加载时间是“轻量级工程加载以及按需求扩展加载”双管齐下改进的结果。下面是一些在Preview 5中的关键性能的提升：</font>  <ul> <li><font size="2" face="Microsoft YaHei"><strong>通过“轻量级解决方案加载”选项来缩短解决方案加载时间:</strong> 工作在超过100多个项目的解决方案中，并不意味着需要在一定时间内操作所有的文件或项目。VS “15”提供了在不需要等待所有工程加载完毕时就可编辑和调试的功能。你可以在Preview5的托管工程中尝试一下这种功能，可以通过工具-&gt; 选项 -&gt;项目和解决方案，勾选“轻量级解决方案加载”。</font>  <li><font size="2" face="Microsoft YaHei">通过按需加载扩展来更快的启动：方法很简单：当需要扩展时再加载，而不是在打开VS的时候就加载。在 Preview 5中，我们开始这样做了，已经改变了Python和Xamarin扩展为按需加载，并正在改变我们提供的所有Visual Studio扩展，以及由第三方扩展供应商所提供的扩展到这种模式。想知道哪些扩展影响了启动，解决方案加载等性能呢？你可以在帮助-&gt;管理Visual Studio性能中查看这些信息。你开发过扩展吗？我们将发布指导来帮助扩展开发人员将扩展改为按需加载。</font>  <li><font size="2" face="Microsoft YaHei"><b>将子系统从VS</b><b>主进程移动到独立进程:</b> 我们移动了一些内存密集型任务，例如 Git 源代码管理、JavaScript 和TypeScript语言服务，以便分离进程。这就杜绝了那些较差的体验，如由于代码运行Visual Studio的程序造成的延时，或者因32位的处理器中主程序已有达到约4 GB的内存上限造成的Visual Studio变得缓慢或者崩溃。在未来的版本中，我们将继续把组件移动到进程外。</font>  <li><font size="2" face="Microsoft YaHei"><b>对C++</b><b>项目，更快的加载项目，编码，调试</b>: 我们可以更快的加载C++项目，查看</font><a href="https://msdnshared.blob.core.windows.net/media/2016/10/fastervscpploadsln.mp4"><font size="2" face="Microsoft YaHei">这个显示改进的视频</font></a><font size="2" face="Microsoft YaHei">。你可以通过从工具-&gt;选项-&gt;文本编辑-&gt;C/C++-&gt;实验，将“启用更快的项目加载”的值设置为True来启用它。我们也改进了我们的链接器和PDB加载库，使得增量生成工程以及调试时更快，同时在调试的时候所消耗的内存也明显减少了。</font>  <li><font size="2" face="Microsoft YaHei"><b>使用Git</b><b>、调试工程和编辑XAML</b><b>代码时速度有所提升</b>：通过从libgit2切换到git.exe，我们提高了源代码管理操作的速度。我们也通过优化初始化时间和其他与IntelliTrace相关的时间，以及诊断工具窗口，还删除了编辑XAML文件时出现的几次延迟。从而提高了调试性能。</font></li></ul> <p><font size="2" face="Microsoft YaHei">这只是开始，我们会专注于做这种改进，让Visual Studio启动的更快，更敏捷的反应时间，以及占用更少的内存。在未来几天，请留心注意Visual Studio博客的帖子，我们会深入讨论这些改进技术的细节。</font>  <p><font size="2" face="Microsoft YaHei">我们严格的测试这些更改，以预测问题并提供最佳性能，但是不能替代真正世界的代码。我们需要你的帮助，所以请</font><a href="https://aka.ms/vs/15/preview/vs_enterprise"><font size="2" face="Microsoft YaHei">安装Preview5</font></a><font size="2" face="Microsoft YaHei">, 用你强大的解决方案试一下，并通过使用IDE的</font><a href="https://go.microsoft.com/fwlink/?LinkId=829399"><font size="2" face="Microsoft YaHei">Report-a-problem</font></a><font size="2" face="Microsoft YaHei">工具来告诉我们您的使用感受。</font>  <p><font size="2" face="Microsoft YaHei"></font>&nbsp; <p><font size="4" face="Microsoft YaHei"><strong>工作效率的提高</strong></font>  <p><font size="2" face="Microsoft YaHei">Visual Studio“15”也有很多旨在提高工作效率的特性。</font>  <p><font size="3" face="Microsoft YaHei"><strong>代码编辑</strong></font>  <p><font size="2" face="Microsoft YaHei">智能感知过滤现在在C#, VB, C++工程中可用了。当尝试复杂的API时, 你可以将范围缩小到你需要的类型（例如，只是方法、属性或事件）。在C#和Visual Basic中，我们确定所需的“目标类型“，在匹配该类型的列表中预选条目。这个加速了你的输入，也减轻了必须在给定位置上找出预期类型的负担。</font>  <p><font size="2" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/03/VS15Preview5-TargetTypePreselection.jpg"><img title="VS15Preview5-TargetTypePreselection" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="VS15Preview5-TargetTypePreselection" src="https://msdnshared.blob.core.windows.net/media/2017/03/VS15Preview5-TargetTypePreselection_thumb.jpg" width="452" height="289"></a></font>  <p><font size="2" face="Microsoft YaHei">在C++中，实验的“预测IntelliSense”功能显示智能感知结果筛选的列表，所以你不需要在很长的列表中滚动。根据需要的可能性，只有期待类型的项目被列出。你可以在工具-&gt;选项-&gt;文本编辑器-&gt;C/C++-&gt;实验下打开这个功能。</font>  <p><font size="2" face="Microsoft YaHei">在XAML中，我们已经添加了智能感知X:Bind。 当你尝试绑定属性和事件时，它提供了一个完整的列表。如果引用到的命名空间已经存在，命名空间会自动补全前缀。XAML智能感知也已经更新，以筛选出类型和属性不匹配的。选择最接近的匹配，所以你只看到相关的结果，不必滚动一长串的类型列表。</font>  <p><font size="2" face="Microsoft YaHei">在JavaScript中，我们已经完全重组语言服务以增强智能感知功能。以前，当键入时，JavaScript 引擎连续的执行你的代码来提供运行时的完全列表和签名帮助。对于静态的JavaScript代码来说，这个非常好，但是它经常提供不一致的编辑体验。新的语言服务使用静态分析，由TypeScript提供更多详细的智能感知，覆盖ES6/ES7，以及更一致的编辑体验。</font>  <p><font size="2" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/03/VS15Preview5-IntelliSenseCompare.png"><img title="VS15Preview5-IntelliSenseCompare" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="VS15Preview5-IntelliSenseCompare" src="https://msdnshared.blob.core.windows.net/media/2017/03/VS15Preview5-IntelliSenseCompare_thumb.png" width="848" height="209"></a></font>  <p><a href="https://msdnshared.blob.core.windows.net/media/2016/10/VS15Preview5-IntelliSenseCompare.png"><font size="2" face="Microsoft YaHei"></font></a> <p><font size="3" face="Microsoft YaHei"><strong></strong></font>&nbsp; <p><font size="3" face="Microsoft YaHei"><strong>快速修复和的重构</strong></font>  <p><font size="2" face="Microsoft YaHei">为使代码可读，并促进您的开发工作流程，我们已经为C#和Visual Basic增加了快速修复和重构。<i>Move Type to Matching File</i>移动类型到一个新的有相同的名字文件。<i>Sync File and Type Name</i>可以重命名类型以匹配你的文件名(反之亦然)。最后，转换为差值的字符串融合了C#6.0和VB14的优点，通过把你的’string.Format’转换为插值字符串的表达式。</font>  <p><font size="3" face="Microsoft YaHei"><strong><a href="https://msdnshared.blob.core.windows.net/media/2017/03/VS15Preview5-MoveType.gif"><img title="VS15Preview5-MoveType" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="VS15Preview5-MoveType" src="https://msdnshared.blob.core.windows.net/media/2017/03/VS15Preview5-MoveType_thumb.gif" width="656" height="347"></a></strong></font>  <p><font size="3" face="Microsoft YaHei"><strong></strong></font>&nbsp; <p><font size="3" face="Microsoft YaHei"><strong>代码导航</strong></font>  <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font size="2" face="Microsoft YaHei">当你面对一段庞大的代码时，想确定你在哪块是一项有挑战性的工作。微软增加了一些新的导航功能，可帮助与此相关的操作。“转至”（按Ctrl+, 或Ctrl+T）可以让你快速找到你代码中的文件，类型，方法，和其他类型的对象。</font>  <p><font size="2" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/03/VS15Preview5-GoTo.png"><img title="VS15Preview5-GoTo" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="VS15Preview5-GoTo" src="https://msdnshared.blob.core.windows.net/media/2017/03/VS15Preview5-GoTo_thumb.png" width="614" height="263"></a></font>  <p><font size="2" face="Microsoft YaHei">现在即使是在复杂的代码库中，也可以很容易的帮助你查找到所有的引用（Shift+F12）。在搜索结果中它提供了先进的分组、 筛选、 排序和 （对于某些语言） 彩色化显示，以便你清楚地了解那些引用。</font>  <p><font size="2" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/03/VS15Preview5-FindAllReferences.png"><img title="VS15Preview5-FindAllReferences" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="VS15Preview5-FindAllReferences" src="https://msdnshared.blob.core.windows.net/media/2017/03/VS15Preview5-FindAllReferences_thumb.png" width="618" height="268"></a></font>  <p><b><font size="3" face="Microsoft YaHei"></font></b>&nbsp; <p><b><font size="3" face="Microsoft YaHei">调试</font></b>  <p><font size="2" face="Microsoft YaHei">在 Preview 5 中，我们引进了此实验功能：Run to Click。您不再需要设置临时断点，来跳到并停止到你需要的代码所在位置。当调试器停止时，只需点击在你的鼠标悬停时，出现在代码行边上的那个图标。您的代码将在下次运行时，命中该行并停止。您可以在这里启用该特性：调试&gt;选项&gt;启用 Run to Click。</font>  <p><b><font size="4" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/03/VS15Preview5-Debugger.gif"><img title="VS15Preview5-Debugger" alt="VS15Preview5-Debugger" src="https://msdnshared.blob.core.windows.net/media/2017/03/VS15Preview5-Debugger_thumb.gif" width="580" height="199"></a></font></b>  <p><b><font size="4" face="Microsoft YaHei"></font></b>&nbsp; <p><b><font size="4" face="Microsoft YaHei">尝试一下</font></b>  <p><font size="2" face="Microsoft YaHei">对于在此版本的完整列表，以及一些已知的问题，查看 </font><a href="https://www.visualstudio.com/news/releasenotes/vs15-relnotes"><font size="2" face="Microsoft YaHei">Visual Studio “15” Preview 5 Release Notes</font></a><font size="2" face="Microsoft YaHei">页。</font>  <p><font size="2" face="Microsoft YaHei">关于Preview 5的几个重要的说明。第一，该preview版本是不提供客户支持的，所以不要在有非常重要工作的机器上安装它。第二，Preview 5可以和Visual Studio之前的版本一起工作，但是在你开始安装过程之前必须删除掉之前安装的任何Visual Studio 15预览安装。对于其他常见的问题，请查阅</font><a href="https://www.visualstudio.com/zh-cn/productinfo/vs2017-FAQ"><font size="2" face="Microsoft YaHei">Preview 5 FAQ</font></a><font size="2" face="Microsoft YaHei">。</font>  <p><font size="2" face="Microsoft YaHei">一如往常，我们欢迎您的反馈。对于问题，请通过安装程序或者IDE本身的“报告问题”选项让我们知道。并且可以在</font><a href="https://developercommunity.visualstudio.com/index.html"><font size="2" face="Microsoft YaHei">开发论坛</font></a><font size="2" face="Microsoft YaHei">上跟踪您的反馈。对于建议，请通过</font><a href="https://visualstudio.uservoice.com/forums/121579-visual-studio"><font size="2" face="Microsoft YaHei">UserVoice</font></a><font size="2" face="Microsoft YaHei">让我们知道。</font>  <p><font size="2" face="Microsoft YaHei">最后，请浏览今天早些时候</font><a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/05/join-us-in-november-for-connect-2016/"><font size="2" face="Microsoft YaHei">Mitra发布的帖子</font></a><font size="2" face="Microsoft YaHei">，去了解即将到来的</font><a href="https://connectevent.microsoft.com/"><font size="2" face="Microsoft YaHei">2016年的开发者大会</font></a><font size="2" face="Microsoft YaHei">。</font>]]></content:encoded>
    </item>
    <item>
      <title>Visual studio “15” 中解决方案加载时间更短</title>
      <link>https://docs.microsoft.com/archive/blogs/visualstudio_cn/visual-studio-15-%E4%B8%AD%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%E5%8A%A0%E8%BD%BD%E6%97%B6%E9%97%B4%E6%9B%B4%E7%9F%AD</link>
      <pubDate>Wed, 25 Jan 2017 09:09:15 GMT</pubDate>
      <dc:creator><![CDATA[DevDivChina]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/visualstudio_cn/?p=2015</guid>
      <description><![CDATA[[原文发表地址]: Shorter Solution Load Time in Visual Studio “15” [原文发表时间]: October 11, 2016 &nbsp;...]]></description>
      <content:encoded><![CDATA[<p>[原文发表地址]: <a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/11/shorter-solution-load-time-in-visual-studio-15/">Shorter Solution Load Time in Visual Studio “15”</a> <p>[原文发表时间]: October 11, 2016 <p><font size="2" face="Microsoft YaHei"></font>&nbsp; <p><font size="2" face="Microsoft YaHei">Selma之前分享了一些使</font><a name="OLE_LINK8"></a><a name="OLE_LINK7"></a><a name="OLE_LINK10"></a><a name="OLE_LINK9"><font size="2" face="Microsoft YaHei">visual studio </font></a><font size="2" face="Microsoft YaHei">“15”启动比以前更快的方法。今天，我会讨论visual studio “15” 中的一个新功能叫做轻量级的加载解决方案。这个功能极大减少了解决方案加载时间，所以你可以更有效率更快地使用IDE。</font> <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font face="Microsoft YaHei"><font size="2"><b></b></font></font>&nbsp; <p><font face="Microsoft YaHei"><font size="3"><b>轻量级加载解决方案</b><b></b></font></font> <p><font size="2" face="Microsoft YaHei">当启用轻量级加载解决方案，Visual Studio 不会完全加载项目，除非你开始使用它。许多常见的任务，例如通过您的代码库导航，编辑代码，和编译您的项目将不需要加载所有项目。</font> <p><font size="2" face="Microsoft YaHei">为了了解在真实的场景中它是如何工作的，我们在容量有限的 Visual Studio “15”preview 4 上发布了轻量级加载解决方案。目前看来，这些性能改进效果还是不错的：</font> <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><a href="https://msdnshared.blob.core.windows.net/media/2017/01/Lightweight-Solution-Load-Performance-in-Preview-4.png"><img title="Lightweight-Solution-Load-Performance-in-Preview-4" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px" border="0" alt="Lightweight-Solution-Load-Performance-in-Preview-4" src="https://msdnshared.blob.core.windows.net/media/2017/01/Lightweight-Solution-Load-Performance-in-Preview-4_thumb.png" width="718" height="434"></a> <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font size="2" face="Microsoft YaHei">在推出这个有限的功能之后，我们发现解决方案加载时间加快了两到四倍。</font> <p><font size="2" face="Microsoft YaHei">此功能的最终目标是使您在IDE中更加高效的工作。使用轻量解决方案加载的开发者们能够在浏览或者编译他们的代码时快1到2分钟。我们也期待在Preview5 中这一特性能够被更完整地发布。</font> <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font face="Microsoft YaHei"><font size="3"><b></b></font></font>&nbsp; <p><font face="Microsoft YaHei"><font size="3"><b>试试它</b><b></b></font></font> <p><font size="2" face="Microsoft YaHei">轻量级的解决方案加载在Preview5 上并不是默认启用的，但我们想鼓励开发者们在中型到大型的、或托管解决方案中尝试这一功能并给予反馈。启用轻量级的解决方案加载，可以在导航菜单中选择工具-&gt;选项，然后选择项目和解决方案-&gt;通用，再勾选页面底部的‘轻量级解决方案加载’：</font> <p><font size="2" face="Microsoft YaHei"><a href="https://msdnshared.blob.core.windows.net/media/2017/01/Search-lightweight-in-Quick-Launch.png"><img title="Search-lightweight-in-Quick-Launch" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px" border="0" alt="Search-lightweight-in-Quick-Launch" src="https://msdnshared.blob.core.windows.net/media/2017/01/Search-lightweight-in-Quick-Launch_thumb.png" width="809" height="189"></a></font> <p><a href="https://msdnshared.blob.core.windows.net/media/2017/01/Enable-Lightweight-Solution-Load-in-Options.jpg"><img title="Enable-Lightweight-Solution-Load-in-Options" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px" border="0" alt="Enable-Lightweight-Solution-Load-in-Options" src="https://msdnshared.blob.core.windows.net/media/2017/01/Enable-Lightweight-Solution-Load-in-Options_thumb.jpg" width="813" height="470"></a> <p><font size="2" face="Microsoft YaHei">一旦启用了轻量级解决方案加载，你可以像往常一样打开并操作你的项目和解决方案。设置将在你下次加载解决方案的时候生效，没有必要去重启IDE。</font> <p><font size="2" face="Microsoft YaHei">在Preview5中轻量级解决方案加载主要作用于托管项目。若你在处理中型或大型的C#或VB的解决方案，我们强烈建议你试用这一新特性。你也能够打开C++或其他项目类型的混合解决方案——但请记住，对于其他类型的项目（更多信息见下文*）而言，目前还不是所有性能的提升都是可用的。</font> <p><font size="2" face="Microsoft YaHei">当轻量解决方案打开后，你或多或少能够像往常一样继续你的工作，只是会更快一些。特别地，还有一些事你可以试试：</font> <ul> <li><font size="2" face="Microsoft YaHei">用Navigate to（Ctrl+，）浏览你的代码库定位，查找声明定义（F12），查找文件，或查找所有引用</font></li> <li><font size="2" face="Microsoft YaHei">重构代码或内联重命名</font></li> <li><font size="2" face="Microsoft YaHei">生成或调试您的解决方案</font></li></ul> <p><font size="2" face="Microsoft YaHei">你可能会注意到一些操作花了一些时间在后台加载项目数据。</font> <p><a href="https://msdnshared.blob.core.windows.net/media/2017/01/Solution-Explorer.png"><img title="Solution-Explorer" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px" border="0" alt="Solution-Explorer" src="https://msdnshared.blob.core.windows.net/media/2017/01/Solution-Explorer_thumb.png" width="424" height="574"></a> <p><font size="2" face="Microsoft YaHei">请注意，轻量级解决方案负载仍然在试验中，所以它仍有一些不足之处：</font> <ul> <li><font size="2" face="Microsoft YaHei">如果一个关于项目的功能从IDE中丢失了，请尝试在解决方案资源管理器中扩展项目。如果有任何不能正常工作的情况请告知我们。</font></li> <li><font size="2" face="Microsoft YaHei">NuGet包恢复至今仍未与轻量级解决方案负载集成，我们建议在打开功能之前恢复包打开之前的功能或用命令行恢复。</font></li> <li><font size="2" face="Microsoft YaHei">除非一个项目完全被加载，否则测试浏览器不会看到测试结果。</font></li> <li><font size="2" face="Microsoft YaHei">如果你需要在一个解决方案中重定向或升级所有项目，禁用轻量级解决方案负载效果会更好。</font></li></ul> <p><font size="2" face="Microsoft YaHei">*虽然在Preview5中轻量级解决方案负载作用于托管项目，如果你是一个C++开发者 也请不用担心，在未来的Preview5中有很多关于C++的性能改进，——在周四查看本系列的第四部分可以获取更多细节。在将来的版本中，这些改进将纳入轻量级解决方案加载。</font> <p><font face="Microsoft YaHei"><font size="3"><b></b></font></font>&nbsp; <p><font face="Microsoft YaHei"><font size="3"><b>请给我们反馈</b>！</font></font> <p><font size="2" face="Microsoft YaHei">我们很乐意听到您使用轻量级解决方案加载的经验反馈。如果您在运行中遇到任何问题，可以使用在 IDE 右上角的"报告问题"的工具，让我们知道。对于性能问题，如 IDE 加载很慢或不响应，请使用<u><a href="https://msdn.microsoft.com/en-us/library/mt786523.aspx">报告问题</a></u>工具向我们报告问题。此指南链接到一个工具，它会自动收集我们诊断性能问题时需要的踪迹和其他信息。</font> <p><font size="2" face="Microsoft YaHei">如果你使用大型代码库，并乐意与我们分享反馈关于你的经验，请考虑填写这份简短</font><a href="https://aka.ms/nm39bi"><font size="2" face="Microsoft YaHei">调查</font></a><font size="2" face="Microsoft YaHei">，包括您的联系方式和有关开发的类型的一些详细信息。您的反馈可以帮助我们尽可能提供最好的开发体验。</font>]]></content:encoded>
    </item>
    <item>
      <title>Visual Studio “15”启动更快了</title>
      <link>https://docs.microsoft.com/archive/blogs/visualstudio_cn/visual-studio-15%E5%90%AF%E5%8A%A8%E6%9B%B4%E5%BF%AB%E4%BA%86</link>
      <pubDate>Wed, 25 Jan 2017 06:28:31 GMT</pubDate>
      <dc:creator><![CDATA[DevDivChina]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/visualstudio_cn/?p=1945</guid>
      <description><![CDATA[[原文发表地址]: Faster Visual Studio “15” Startup [原文发表时间]: October 10, 2016 &nbsp;...]]></description>
      <content:encoded><![CDATA[<p>[原文发表地址]: <a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/10/faster-visual-studio-15-startup/">Faster Visual Studio “15” Startup</a> <p>[原文发表时间]: October 10, 2016 <p>&nbsp; <p><font size="2" face="Microsoft YaHei">正如John上周三在</font><a href="https://blogs.msdn.microsoft.com/visualstudio/2016/10/05/announcing-visual-studio-15-preview-5/"><font size="2" face="Microsoft YaHei">预览版5发布</font></a><font size="2" face="Microsoft YaHei">的博客中提到的，我们在这个版本中进行了大量的性能改进。这是包含</font><a href="https://aka.ms/vs/15/preview/vs_enterprise"><font size="2" face="Microsoft YaHei">Visual Studio “15”</font></a><font size="2" face="Microsoft YaHei"> 性能改进的五部分系列的第一部分。</font> <p><font size="2" face="Microsoft YaHei">今天，我将向您介绍一系列我们为改进Visual Studio启动体验而进行的投入，主要包括以下方面：</font> <ul> <li><font size="2" face="Microsoft YaHei">使用我们的新性能中心，您如何确定所使用的扩展或者工具窗口是否影响了启动、解决方案加载或代码编辑等方面的体验。当然，还有如何优化它。</font></li> <li><font size="2" face="Microsoft YaHei">如何使用按需加载方法将扩展移出启动路径，优化和推迟缓存初始化，来有助于我们改善启动时间。</font></li></ul> <p><font size="2" face="Microsoft YaHei">近年来，随着Visual Studio用户群的增长，在Visual Studio中也融合了一些合作伙伴的技术。 不幸的是， 由于这些功能在启动时会自动加载，这极大地影响了Visual Studio的启动时间。</font> <p><font size="2" face="Microsoft YaHei">下面是一个示例，显示了Visual Studio启动时间在启动加载扩展时，如何轻松地减慢50％。</font> <p><a href="https://msdnshared.blob.core.windows.net/media/2017/01/VS-Startup-Times-with-and-without-Extensions.png"><img title="VS-Startup-Times-with-and-without-Extensions" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px" border="0" alt="VS-Startup-Times-with-and-without-Extensions" src="https://msdnshared.blob.core.windows.net/media/2017/01/VS-Startup-Times-with-and-without-Extensions_thumb.png" width="766" height="458"></a> <p><font face="Microsoft YaHei"><font size="4"><b></b></font></font>&nbsp; <p><font face="Microsoft YaHei"><font size="4"><b>Visual Studio</b><b>启动包含什么？</b><b></b></font></font> <p><font size="2" face="Microsoft YaHei">有三个不同的Visual Studio 启动类型：</font> <ol> <li><font size="2" face="Microsoft YaHei">首次启动：安装完成后第一次启动Visual Studio。 第一次启动Visual Studio比其他启动要慢得多，因为Visual Studio环境配置了各种缓存和预构建的表。</font></li> <li><font size="2" face="Microsoft YaHei">正常启动：我们将在第一次启动后，后续的Visual Studio启动，称为正常启动； 此类启动不包括调试实例，或使用命令行参数启动的实例，以及之前安装的扩展或更新的实例。80％的Visual Studio启动都属于正常的启动。</font></li> <li><font size="2" face="Microsoft YaHei">配置更改：在安装扩展或更新后发生的启动。</font></li></ol> <p><font size="2" face="Microsoft YaHei">这些类型帮助我们识别潜在减速的根本原因，有利于进一步调查优化方案。</font> <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font face="Microsoft YaHei"><font size="3"><b>首次启动的改进</b><b></b></font></font> <p><font size="2" face="Microsoft YaHei">在Visual Studio 2015中，首次的启动包括扫描安装的组件和创建一个配置文件，初始化默认设置，获取用户登录信息，并初始化缓存，如托管扩展框架（MEF），扩展管理器，工具箱以及字体/颜色缓存。</font> <p><font size="2" face="Microsoft YaHei">在Visual Studio“15”中，我们已经考虑了每个步骤，以查看哪些可以延期或优化：</font> <ul> <li><font size="2" face="Microsoft YaHei">我们尝试在Visual Studio 2015中推迟工具箱的初始化，这对于加载时间有积极的影响，于是在Visual Studio“15”中就进行了这种更改。</font></li> <li><font size="2" face="Microsoft YaHei">一些缓存，如字体和颜色缓存不再在第一次启动时初始化。 我们改进了缓存配置，使我们可以推迟其初始化，而不会影响首次启动时的用户体验。</font></li> <li><font size="2" face="Microsoft YaHei">通过使MEF和扩展管理器服务异步，我们现在可以在登录运行时并行初始化这些缓存。</font></li></ul> <p><font size="2" face="Microsoft YaHei">有了所有这些变化，我们很高兴地宣布，Visual Studio“15”的启动速度比Visual Studio 2015快3倍。这是一个从我们之前的遥测获取的数据：</font></p> <table cellspacing="0" cellpadding="2" width="561" border="1"> <tbody> <tr> <td valign="top" width="260"><strong>Duration</strong></td> <td valign="top" width="148"><strong>Visual Studio 2015</strong><br></td> <td valign="top" width="151"><strong>Visual Studio “15”</strong></td></tr> <tr> <td valign="top" width="260">First Launch duration (80th percentile)<br></td> <td valign="top" width="148">215.5 sec</td> <td valign="top" width="151">80.3 sec</td></tr></tbody></table> <p><font face="Microsoft YaHei"><font size="2"><b></b></font></font>&nbsp; <p><font face="Microsoft YaHei"><font size="3"><b>正常启动的改进</b><b></b></font></font> <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font face="Microsoft YaHei"><font size="2">Visual Studio的正常启动，至少需要初始化核心服务。 每次发布我们都会继续监控这些服务，以确保核心初始化不会变长。 除了核心服务之外，启动时间还会受到两个因素影响： 在启动时自动加载的扩展和在先前实例的窗口布局中保留的工具窗口。我们的遥测结果表明，自动加载 Microsoft和第三方的扩展项，会显著增加Visual Studio启动时间。<b></b></font></font> <p><font size="2" face="Microsoft YaHei">如上所述，我们在Visual Studio“15”中的主要重点是避免自动加载扩展，并为这些扩展提供更多选项，以便稍后再加载而不影响用户体验。作为这项工作的一部分，我们提供了以下功能：</font> <ul> <li><font size="2" face="Microsoft YaHei">启用对Visual Studio软件包的异步加载支持</font></li> <li><font size="2" face="Microsoft YaHei">扩展中间数据规则来控制自动包的加载和命令的可见性</font></li> <li><font size="2" face="Microsoft YaHei">支持核心Visual Studio服务的异步查询</font></li></ul> <p><font size="2" face="Microsoft YaHei">Xamarin和Python工具是第一个在Visual Studio“15”中采用按需加载方法。 你现在应该看到启动是相当快的。</font> <p><font size="2" face="Microsoft YaHei">影响启动的另一个因素是在启动时在IDE上可见的工具窗口。 这些工具窗口与之前的实例一致，并且加载这些工具窗口所增加的时间，取决于它们初始化的功能的大小; 其中一些是相当明显。我们继续专注于基于我们的遥测技术提高这种工具窗口的性能。 此外，“管理Visual Studio性能”对话框帮助您覆盖这些工具窗口的默认持久性行为。您将在下一部分中了解到有关此对话框的更多信息。</font> <p><font face="Microsoft YaHei"><font size="4"><b></b></font></font>&nbsp; <p><font face="Microsoft YaHei"><font size="4"><b>监控扩展和工具窗口性能</b><b></b></font></font> <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font size="2" face="Microsoft YaHei">我们在最小化启动时自动加载功能的需要的同时，还在Visual Studio“15”中添加了一个功能，以帮助用户了解他们的扩展和工具窗口以及解决方案的加载和编辑等场景对启动的影响。是的，此功能会自动加载以监视Visual Studio启动时发生的情况。</font> <p><font size="2" face="Microsoft YaHei">当您启动Visual Studio时，对于较慢的扩展，您将收到一个相关扩展的性能对启动的影响的一次性通知。</font> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/10/Notification-Showing-Extension-Slowing-Down-Visual-Studio.png"><font size="2" face="Microsoft YaHei"><img title="clip_image003" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px" border="0" alt="clip_image003" src="https://msdnshared.blob.core.windows.net/media/2017/01/clip_image0037.png" width="814" height="170"></font></a> <p><font size="2" face="Microsoft YaHei">在任何时候，您可以通过帮助 - &gt;管理Visual Studio性能打开对话框，查看哪些扩展或工具窗口影响您的Visual Studio的启动，解决方案加载等。从“管理Visual Studio性能”对话框中，也可以禁用扩展。</font> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/10/Manage-Visual-Studio-Performance-Extensions.png"><font size="2" face="Microsoft YaHei"><img title="clip_image005" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px" border="0" alt="clip_image005" src="https://msdnshared.blob.core.windows.net/media/2017/01/clip_image0054.png" width="835" height="355"></font></a> <p><font size="2" face="Microsoft YaHei">与扩展一样，您可以在同一对话框中查看工具窗口对启动速度的影响。 如果工具窗口明显减慢了Visual Studio的启动速度，您也会收到通知。 您可以通过以下两个选项之一进行选择来覆盖默认持久性行为：</font> <ul> <li><font size="2" face="Microsoft YaHei">使用默认行为; 对当前行为没有改变。 因此，如果您选择此选项，那么启动时间不会有所改进。</font></li> <li><font size="2" face="Microsoft YaHei">启动时不显示窗口; 工具窗口永远不会在实例之间持续。 您可以稍后从菜单中打开它。</font></li> <li><font size="2" face="Microsoft YaHei">启动时自动隐藏窗口; 如果在启动时可以看到工具窗口，则此选择将折叠其组来避免初始化工具窗口。这个选项是我最喜欢的。</font></li></ul> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/10/Manage-Visual-Studio-Performance-Tool-Windows.png"><font size="2" face="Microsoft YaHei"><img title="clip_image007" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px" border="0" alt="clip_image007" src="https://msdnshared.blob.core.windows.net/media/2017/01/clip_image0072.png" width="895" height="410"></font></a></p> <p><font size="2" face="Microsoft YaHei">您可以通过返回“管理Visual Studio性能”对话框并将选项更改为使用默认行为来恢复这些选项。</font> <p><font face="Microsoft YaHei"><font size="4"><b></b></font></font>&nbsp; <p><font face="Microsoft YaHei"><font size="4"><b>持续帮助我们</b><b></b></font></font> <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font size="2" face="Microsoft YaHei">虽然这篇文章专注于启动改进，但我的同事Will Buik将在下一篇文章中谈到解决方案负载领域的重大改进。 这些更改应该允许Visual Studio在使用从Windows资源管理器中选择的解决方案打开时更快启动。</font> <p><font size="2" face="Microsoft YaHei">您可以在以下几个方面来帮助我们，以使Visual Studio成为更好的产品：</font> <ul> <li><font size="2" face="Microsoft YaHei">首先，我们监控所有发布的遥测，包括预发布。 所以请下载并使用 </font><a href="https://aka.ms/vs/15/preview/vs_enterprise"><font size="2" face="Microsoft YaHei">Visual Studio“15”预览5</font></a><font face="Microsoft YaHei"><font size="2">。</font></font></li> <li><font face="Microsoft YaHei"><font size="2">其次，如果你是一个扩展的创造者，请继续关注; 在接下来的几周中，我们将详细介绍扩展创造者如何分析其扩展。 因为任何选择在启动时或解决方案正在打开时自动加载的扩展都会对Visual Studio的性能产生负面影响。 即将推出的指南将有助于评估Visual Studio“15”中的新功能是否可用于删除自动加载的需要或减少自动加载的影响。 对于需要自动加载的扩展，指导还将帮助衡量对启动的影响。</font></font></li></ul> <p><font face="Microsoft YaHei"><font size="2"><b></b></font></font>&nbsp; <p><b><font size="2" face="Microsoft YaHei"></font></b> <p><font size="2" face="Microsoft YaHei">谢谢！</font> <p><font size="2" face="Microsoft YaHei">Selma</font>]]></content:encoded>
    </item>
  </channel>
</rss>