• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Visual Studio 2010中C++并行構建調優(3)

    發布: 2010-3-25 12:48 | 作者: 不詳 | 來源: 領測軟件測試網采編 | 查看: 30次 | 進入軟件測試論壇討論

    領測軟件測試網

      Visual Studio 2010中C++并行構建調優(3)   軟件測試 

        本文將討論的是Visual Studio 2010中C++并行構建調優,著重要談的是MSBuild這樣一個平臺的主要功能。

      并行數量太多了也不好

      一般來說,利用完所有處理器或處理器核心就已經足夠了,否則可能會導致機器變慢甚至崩潰,下圖就顯示了這樣一個例子。

    太多的并行構建進程很容易讓機器崩潰

      圖 15 太多的并行構建進程很容易讓機器崩潰

      我是在一臺8 CPU的機器上做的這個實驗,我把解決方案中的所有項目全部開啟/MP了,然后使用msbuild.exe /m進行構建(我使用命令行進行構建不會出現這個問題,但在Visual Studio中進行構建就會出現),如果相關依賴不能阻止它,MSBuild將立即啟動8個項目,每個CL將會一次運行自己的8個實例,因此總共會有64個CL運行考驗我們的處理器核心和磁盤,這樣做不但不能提升速度,反倒會使性能急劇下降。

      你可能希望有一天系統能夠實現自我調整,但如果現在遇到這樣的問題,你不得不手工調整。下面是一些建議:

      ◆將全局值設小一點

      例如將/m:4減少到/m:3,或使用屬性表將/MP修改為/MP2,如果你的構建中還有其它問題,如有許多的并行項目,但并行的CL不夠,反之亦然,這個時候你都應該將全局并行構建參數調小。

      ◆為每個項目和配置調整/MP

      有些時候使用/MP可能不是最佳的辦法,你也可以通過配置進行調整,Retail配置可能會使速度變得更慢,因為編譯器要做的優化更多了,為Retail開啟/MP而不是為Debug開啟/MP可能更有意義。

      ◆獲得超級定制

      在你的團隊中,你可能有一系列硬件,也許你的開發人員使用的是雙CPU機器,但夜間構建是在一臺8 CPU的機器上進行的,兩者構建時需要的來源是一樣的,你希望兩者的速度都不能太慢,在這種情況下,你可以使用環境變量,或是在MSBuild標簽上設置條件,幾乎所有MSBuild標簽都可以設置條件。

      下面是一個例子,當“MultiprocCLCount”有一個大于零的值時,就可以使用這個值啟用/MP。

    通過環境變量調整處理器數量

      圖 16 通過環境變量調整處理器數量

      MSBuild啟動時將所有環境變量的值作為初始屬性值,因此在我更快速的機器上,我將MultiprocCLCount的值設為8,而在我的開發用機上,我將其設為2。

      類似的方法還可以應用到MSBuild.exe的/m參數中,如/m:%MultiprocMSBuildCount%,

      在外來條件中還有其它屬性可能很有用,如$(Number_Of_Processors)表示邏輯處理核心數量,它來自環境變量。$(MSBuildNodeCount)是傳遞給msbuild.exe /m參數的值,在Visual Studio中,這個值是通過“工具”*“選項”進行設置的。

      最后,我希望你能有效利用/m和/MP。希望你對我介紹的MSBuild功能能進一步深入學習,最好自己動手配置一次。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: studio Studio visual Visual 構建


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>