精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

Visual Studio 15的內存占用探析

責任編輯:editor005

作者:Jeff Martin

2016-10-31 16:02:42

摘自:INFOQ

Jeff Martin撰寫了一系列關于Visual Studio “15”性能分析的文章。盡管測量工具已經提供了一些內存占用量減少的證據,但是開發者們獲知這一消息后,針對微軟采用的一些方案提出了許多問題。

Jeff Martin撰寫了一系列關于Visual Studio “15”性能分析的文章。在他的上一篇文章《Visual Studio “15”的啟動優化》中曾提到,微軟已承諾全面提升Visual Studio “15” IDE的性能。本文將從內存處理的角度,探討他們在Technical Preview 5(TP5)中所做的提升:在主程序保留為一個32位進程的同時,將部分關鍵組件遷移到微軟獨有的進程。

在微軟任職的Ashok Kamath針對這些改變在《Visual Studio “15”的內存溢出崩潰減少優化》一文中做了更多的介紹,以便能從更全面的視角來看待這些改變。他提供了一種方法來度量微軟開發團隊所作出的改進。他提供了2個不同的指標:虛擬內存峰值PVM(Peak Virtual Memory)和個人工作集峰值PPWS(Peak Private Working Set)。PVM指的是VS15主進程所占用的總內存數。由于主進程是32位的,因此它的最大值被限制為4GB內存。PPWS指的是VS15的devenv.exe和相關進程所占用的物理內存數。

首先被移出VS15主進程的是JavaScript語言服務。JavaScript語言服務提供智能提示、代碼導航等功能。新的JavaScript服務由一個獨立的Node.js進程協同VS15提供對JavaScript和TypeScript的支持。Kamath團隊通過在VS 2015 Update 3(Visual Studio之前的一個版本)和VS15 Preview 5中加載WebSpaDurandal方案來測量新服務的性能影響。在VS15 Preview 5中,PVM占用量大約減少了33%,但是PPWS的占用量減少得非常少,幾乎可以忽略不計。

第二個內存優化的部分是關于調試器中的符號加載。縱觀Visual Studio的近期發布歷史,他們已經通過高侵入性地從PDB文件中預加載符號數據來讓C++調試器運行地更快。但是這個方案有一個弊端,那就是會消耗大量的內存。在VS15中,這個預加載功能被重寫。新的預加載功能致力于只加載需要的信息而不是像之前那樣“大而全”地加載。為了測量這一改進,Kamath團隊用VS 2015 Update 3和VS15 Preview 5打開Unreal Engine方案,并使用調試器調試Unreal Engine進程。結果,VS 2015 Update 3不能執行這個操作,因為它會因為內存溢出錯誤而崩潰;TP5可以執行這個操作,占用大約3GB PVM和大約1.8GB PPWS。

第三個被移出主進程的是關于Git的組件。Visual Studio的先前版本使用libgit2庫,但是在TP5中改用git.exe。通過使用Chromium包測量這個改進,發現在TP5中VS主進程占用了0GB PVM,而VS2015占用了大約300B PVM。至于PPWS的占用量,兩者大致相當。

盡管測量工具已經提供了一些內存占用量減少的證據,但是開發者們獲知這一消息后,針對微軟采用的一些方案提出了許多問題。首先提到的是,更頻繁的內存交換可能導致可用性下降。另外,一位名為“Syka”的評論者提出,盡管從主進程中移出部分組件會解除內存占用方面的限制,但是可能會造成潛在的性能下降。因為跨進程的進程通信相對于原來的進程內部的組件調用來說,會造成更高的通信成本。此外,一些評論者提到,Visual Studio的真實問題并不是內存占用,而是由于主進程是32位而導致的尋址空間的稀缺。為此,他們再次呼吁微軟能夠開發64位版本的Visual Studio(詳情可參考《讓VS擴展支持64位》)。

作者簡介

Jeff Martin擁有密歇根大學的MBA學位,曾在金融領域有所建樹,但是為了緊隨時代潮流,毅然投身計算機產業。他在業余時間喜歡和妻子一起旅行,閱讀和編程。他剛著作了一本新書,《Visual Studio 2013 Cookbook》。可以在Twitter上關注他,http://twitter.com/jeffemartin。

查看英文原文:Addressing Visual Studio 15's Memory Usage

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 开远市| 林口县| 临西县| 商河县| 长海县| 宝山区| 桃源县| 盐池县| 炉霍县| 绵阳市| 肥西县| 健康| 偃师市| 芷江| 黄冈市| 和田县| 石台县| 勐海县| 论坛| 公主岭市| 永昌县| 旅游| 鸡泽县| 崇礼县| 永年县| 城市| 南投县| 财经| 赤城县| 江孜县| 新竹市| 宁陵县| 林甸县| 黔东| 襄樊市| 安多县| 侯马市| 南皮县| 宜兰市| 班玛县| 神木县|