青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++ Programmer's Cookbook

{C++ 基礎} {C++ 高級} {C#界面,C++核心算法} {設計模式} {C#基礎}

Visual Studio 2005 Team System:構建健壯而可靠的軟件

Visual Studio 2005 Team System:構建健壯而可靠的軟件

發布日期: 6/21/2005 | 更新日期: 6/21/2005

Kamran Iqbal
Microsoft Corporation

適用于:

Microsoft Visual Studio? 2005 Team System

摘要:描述 Visual Studio 2005 Team System 提供的代碼分析和性能工具。

本文檔于產品投入生產之前編寫,因此您可能會發現這里所包含的細節與發布的產品有不一致的地方。文中的信息均依據撰寫本文時的產品狀況,僅供您在規劃時參考。如有更改,恕不另行通知。Microsoft 擁有本文檔中的主題所涉及的專利、專利應用程序、商標、版權或其他的知識產權。除非 Microsoft 以任何書面許可協議明確提供,向您提供本文檔并沒給予您使用這些專利、商標、版權或其他知識產權的任何許可證。

*
本頁內容
簡介 簡介
分析工具支持 分析工具支持
我們的解決方案 我們的解決方案
Visual Studio 中的工具集成 Visual Studio 中的工具集成
小結 小結

簡介

要開發健壯而可靠的軟件,開發人員需要一套集成分析工具,來幫助他們在開發的早期檢測代碼缺陷和性能問題。

分析工具支持

過去,由于 Visual Studio 中缺少對代碼分析的支持,因此開發人員不得不購買第三方工具,構建自定義分析工具,或者發布未經分析的代碼。

?

花費額外的成本購買第三方工具。

從眾多的分析工具中選擇一個既能滿足軟件分析的要求又在預算限制范圍之內的工具,未必總是一項輕松的任務。另外,這些工具可能沒有集成到 Visual Studio 集成開發環境 (IDE) 中,因此通常需要花費額外的時間來學習如何順利地使用它們。

?

構建自定義分析工具。

構建自定義分析工具需要資源、技能和經驗。這對大多數公司中的開發團隊而言是不現實的,僅僅是少數公司可以擔負得起的選擇。

?

發布未經分析的代碼。

在工時期限和預算限制緊張的情況下,發布未經分析的代碼似乎是一種正確的方法,但如果軟件在部署之后發生故障,可能證明采用這種錯誤方法的代價不菲。

我們的解決方案

在 Visual Studio 2005 Team System 中,開發人員將會看到一套全新的、完全集成到 IDE 中的分析工具。這種分析工具與開發環境的緊密集成,可以幫助開發人員在產品開發的早期檢測并修復代碼缺陷和性能問題。這還可以幫助團隊有效且高效地管理軟件開發生命周期(Software Development Life Cycle,SDLC)。

在 Visual Studio 2005 Team System 中,有兩類分析工具可用于構建健壯而可靠的軟件:

?

代碼分析工具

?

性能工具

在開發環境中集成分析工具可以幫助開發人員檢測與編碼、性能及安全性相關的問題。此外,可將代碼分析工具作為簽入策略的一部分用于每日構建 (nightly build) 過程,使開發團隊能夠在將代碼簽入到源樹 (source tree) 之前修正缺陷。通過在開發的早期(而不是后期)更正問題,團隊可降低修復代碼缺陷的總體成本。

除了完全集成到 IDE 中之外,開發人員還可以從命令行使用這些工具。

Visual Studio 中的工具集成

在 Visual Studio 2005 Team System 中,通過使用代碼分析工具和性能工具,開發人員可以對代碼進行靜態和動態分析。

代碼分析工具

代碼分析工具的目標是使開發人員能夠對其項目進行靜態分析,以檢測和修復代碼缺陷。為了實現這個目標,Visual Studio 2005 Team System 中包含了兩個工具:

?

PREfast

?

FxCop

PREfast

PREfast 是一個靜態分析工具,它為開發人員提供有關其 C/C++ 源代碼中可能存在缺陷的信息。PREfast 報告的常見代碼錯誤包括緩沖區溢出、未初始化內存、空指針取消引用、內存泄漏和資源短缺。

IDE 集成

為了使開發人員能夠自然地使用分析工具,可以將 PREfast 完全集成到 IDE 中。通過在項目的 Property Pages 上選擇 Yes (/prefast),開發人員可以輕松啟用 PREfast,如圖 1 所示。


1. 啟用 PRE f ast

在生成過程中,為源代碼生成的任何 PREfast 警告都出現在 Error List 中。這些警告包括缺陷路徑信息(如果有);雙擊突出顯示缺陷路徑的警告,可以進入代碼編輯器中的警告,如圖 2 所示。


2. PRE f ast 警告

#pragma support

Developers can use the #pragma directive to treat warnings as errors, or disable warnings, as shown below.
#pragma warning (error: 6260)  //treat warning 6260 as an error
#pragma warning (disable: 6011)  //disable warning 6011

批注支持

PREfast 還支持批注以改善代碼分析的精確性。批注提供有關函數參數和返回類型的之前和之后條件的附加信息。

#include 
[SA_Post( MustCheck=SA_Yes )] double* CalcSquareRoot
( 
   [SA_Pre( Null=SA_No )] double* source, 
   unsigned int size
)

在上面的示例中:

?

[SA_Post ( MustCheck=SA_Yes)] 要求調用方檢查 CalcSquareRoot 的返回值

?

[SA_Pre ( Null=SA_No)] 要求調用方將非空參數“source”傳遞給 CalcSquareRoot

命令行支持

除了與開發環境完全集成之外,開發人員還可以從命令行使用 PREfast,如下所示。

C:\>cl /prefast Sample.cpp

FxCop

FxCop 是一個靜態分析工具,它分析托管代碼程序集并報告有關程序集的信息,例如,與 Microsoft .NET Framework Design Guidelines 中闡述的編程和設計規則相沖突。FxCop 表示在分析過程中作為規則執行的檢查。規則是一段托管代碼,該代碼分析程序集并返回有關它發現結果的消息。規則消息識別任何相關的編程和設計問題,并在可能的情況下,提供有關如何修復目標的信息。

IDE 集成

為了使開發人員能夠自然地使用分析工具,開發人員可以在項目的 Property Pages 上選擇 Run FxCop,如圖 3 所示。


3. 啟用 FxCop

有關包含或排除規則,將規則作為警告或錯誤的附加選項,也可以在 Property Pages 中找到,如圖 4 所示。


4. FxCop 規則

一旦啟用 FxCop,在生成過程中,FxCop 就會在 Error List 中報告沖突,如圖 5 所示。


5. FxCop 規則沖突

Error List 提供有關規則沖突的信息和建議,以便于您糾正錯誤。只需在 Error List 中雙擊規則沖突,即可輕松地定位到觸犯了規則的代碼行。

MSBuild 集成

Visual Studio 的下一個版本從根本上改進了生成過程,其方法是引入一個新的、名為 MSBuild 的生成引擎。可以通過 MSBuild 系統調用 FxCop。這使開發人員能夠從命令行運行托管項目上的 FxCop。

性能工具

在 Visual Studio 2005 Team System 中,開發人員可以通過性能工具來度量、計算和定位代碼中與性能相關的問題。這些工具都完全集成到 IDE 中,以提供無縫、友好的用戶體驗。

性能工具支持兩種分析方法:

?

采樣

?

使用儀器

在采樣的過程中,數據收集基礎結構將定期中斷正在執行的應用程序,以確定正在執行的是哪個函數,并增加函數的采樣計數。它存儲有關準備函數調用的調用堆棧的信息。

應用程序退出后,收集到的所有數據會生成為一個報告文件,您可以使用 IDE 中集成的報告功能輕松地查看該文件。

采樣的優勢在于低開銷,因為這只是定期中斷應用程序。這使得應用程序的行為能夠更接近實際情況。這種方法的缺點是,它只能獲取已采樣函數的相關性能數據。有可能沒有對需要采樣的函數進行采樣,因而無法獲取有關該函數的信息。

使用儀器的優勢在于可以收集應用程序的特定部分的精確性能數據。在使用儀器的過程中,“enter”和“exit”探針被插入到應用程序的函數中。這些探針將報告返回給數據收集基礎結構,并允許用戶捕獲函數執行所需的精確時間(或其他衡量標準)。

分析應用程序

分析應用程序的首選使用模式是首先開始采樣,然后根據采樣所產生的結果檢測應用程序的特定方面。

分析應用程序的過程相當簡單。首先創建一個新的性能會話。在 Visual Studio 2005 Team System 中,可以使用 Performance Session Wizard 創建一個新的性能會話。

Performance Session Wizard

Performance Session Wizard 設置分析應用程序的必要環境。在 Visual Studio 2005 Team System 中,該向導為 EXE、DLL 和 ASP.NET 應用程序提供內置支持。

可以使用該向導創建一個 New Performance Session,如圖 6 所示。


6. 啟動性能向導

要手動創建一個新的性能會話,請使用菜單上的 New Performance Session 命令。可以采用這種方法來手動分析其他類型的應用程序(例如,Windows 服務)。

Performance Explorer

性能會話作為運行會話向導或手動創建會話的結果而創建。Performance Explorer 可以將其直觀地表示出來,如圖 7 所示。


7. 性能資源管理器

Performance Explorer 給用戶呈現了層次結構。該層次結構的根節點表示 Performance Session。這種節點的屬性是用戶在創建 Performance Session 時設置的屬性。如果用戶使用 Performance Session Wizard 創建會話,則這些屬性體現了用戶在使用向導的過程中所選擇的值。如果用戶手動創建 Performance Session,則這些屬性包含了它們的默認值。

根節點有兩個子節點:Targets 節點和 Reports 節點。Targets 節點包含一個或多個目標,目標可以是 EXE、DLL 或 ASP.NET 應用程序。

Reports 節點包含與某個特定 Performance Session 相關的所有報告。

性能會話報告

一旦應用程序執行完畢,系統就會將一個性能會話報告自動添加到 Reports 節點。可以通過下面的視圖來查看這些報告:

Summary 視圖

Summary 視圖為開發人員提供了其調查的起點。它顯示應用程序執行過程中開銷最高的函數,如圖 8 所示。從該視圖中的每個數據點,用戶都可以定位到更詳細的視圖。


8. Summary 視圖

Functions 視圖

Functions 視圖顯示在應用程序的執行過程中調用的全部函數,這些函數存在于由該應用程序引用的所有模塊之中,如圖 9 所示。該視圖顯示的信息取決于所用的分析方法(采樣與使用儀器)。


圖 9. Functions 視圖

Caller/Callee 視圖

Caller/Callee 視圖提供在 Functions 視圖中所列函數的詳細信息,如圖 10 所示。


10. Caller/Callee 視圖

Callstack 視圖

Callstack 視圖使用戶能夠向下搜索特定的調用跟蹤,并分析哪些跟蹤對性能的影響最大。


11. Callstack 視圖

Type 視圖

Type 視圖提供有關某個特定類型的實例數量和總字節數的信息,如圖 12 所示。

命令行支持

可以通過命令行工具使用性能工具功能。這為用戶提供了靈活性,用戶既可以從命令行運行這些工具,又可以通過腳本來使用它們,以便自動執行任務。

posted on 2006-06-16 12:16 夢在天涯 閱讀(950) 評論(0)  編輯 收藏 引用 所屬分類: C#/.NETVS2005/2008

公告

EMail:itech001#126.com

導航

統計

  • 隨筆 - 461
  • 文章 - 4
  • 評論 - 746
  • 引用 - 0

常用鏈接

隨筆分類

隨筆檔案

收藏夾

Blogs

c#(csharp)

C++(cpp)

Enlish

Forums(bbs)

My self

Often go

Useful Webs

Xml/Uml/html

搜索

  •  

積分與排名

  • 積分 - 1812202
  • 排名 - 5

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              亚洲国产清纯| 亚洲午夜一区二区| 亚洲第一精品夜夜躁人人爽| 国产精品久久久久久久久搜平片 | 欧美激情在线免费观看| 久久久久久噜噜噜久久久精品| 欧美一级久久| 欧美激情国产精品| 亚洲第一成人在线| 欧美成人午夜免费视在线看片| 欧美精品日本| 国产精品视频网址| 国内伊人久久久久久网站视频 | 欧美aⅴ99久久黑人专区| 久久国产日韩欧美| 久久久午夜视频| 欧美激情亚洲| 国产精品久久一级| 伊人成综合网伊人222| 亚洲欧洲精品一区| 亚洲性图久久| 久久亚洲捆绑美女| 亚洲精品乱码久久久久| 亚洲专区一区二区三区| 久久精品一本| 欧美日韩一区二区三区四区在线观看| 国产精品久久久久久久久久妞妞| 国产香蕉97碰碰久久人人| 亚洲国产精品va在线看黑人| 亚洲一级电影| 亚洲激情网站免费观看| 亚洲永久免费精品| 欧美xart系列高清| 亚洲影院色在线观看免费| 亚洲国产精品第一区二区| 宅男66日本亚洲欧美视频| 久久久久国产精品人| 欧美日韩一区国产| 亚洲电影av| 欧美在线日韩| 亚洲免费一在线| 欧美激情自拍| 久久国产精品久久久久久| 欧美日韩一区精品| 亚洲黄色一区| 久久综合网络一区二区| 一区二区三区精品| 男女激情久久| 狠狠久久婷婷| 久久精品成人欧美大片古装| av成人动漫| 亚洲性视频网站| 欧美日韩国产免费观看| 亚洲国产欧美不卡在线观看| 久久精品一区中文字幕| 亚洲少妇最新在线视频| 欧美日韩亚洲综合一区| 亚洲精品视频二区| 欧美a级片一区| 久久久久久久网| 在线免费观看日本一区| 久久一区二区三区国产精品| 欧美自拍丝袜亚洲| 在线观看视频一区二区| 亚洲电影在线| 欧美日韩国产在线| 在线视频一区观看| 在线亚洲欧美| 国产视频综合在线| 欧美日韩成人在线视频| 一本色道婷婷久久欧美| 亚洲国产婷婷香蕉久久久久久| 久久久久九九视频| 狠狠干狠狠久久| 你懂的国产精品| 免费成人av| 亚洲伦理久久| 99成人免费视频| 国产欧美日韩激情| 欧美在线亚洲在线| 亚洲欧美日韩专区| 狠狠久久综合婷婷不卡| 欧美高清在线| 欧美精品三级| 亚洲午夜羞羞片| 亚洲宅男天堂在线观看无病毒| 欧美日韩免费区域视频在线观看| 亚洲电影免费观看高清| 亚洲欧美在线免费观看| 欧美一区二区三区另类| 国产资源精品在线观看| 国产欧美一区在线| 香蕉视频成人在线观看| 久久乐国产精品| 国产精品青草久久久久福利99| 日韩视频在线观看一区二区| 国际精品欧美精品| 亚洲精品美女在线观看播放| 久久婷婷影院| 在线观看欧美亚洲| 狂野欧美激情性xxxx| 欧美一级午夜免费电影| 久久久精品久久久久| 亚洲一区二区三区四区五区午夜| 亚洲精品1234| 在线亚洲观看| 欧美视频你懂的| 国产亚洲精品bt天堂精选| 亚洲日本aⅴ片在线观看香蕉| 欧美成人免费播放| 一区二区三区精品视频| 亚洲第一精品电影| 欧美激情国产日韩| 中文av一区二区| 久久视频在线看| 欧美一区二区三区在线看| 国产日韩欧美一区二区三区在线观看| 亚洲欧美成aⅴ人在线观看| 中文国产亚洲喷潮| 国产精品亚洲精品| 亚洲电影免费观看高清完整版在线观看 | 曰韩精品一区二区| 久久理论片午夜琪琪电影网| 欧美一区二区三区播放老司机| 一区在线观看| 亚洲美女中出| 在线亚洲免费| 久久成人综合网| 久久久久久噜噜噜久久久精品| 激情久久久久久久久久久久久久久久| 女生裸体视频一区二区三区| 国产在线高清精品| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲中午字幕| 亚洲高清中文字幕| 久久人人97超碰人人澡爱香蕉| 国产精品jizz在线观看美国 | 欧美一区二区视频在线观看2020| 黄色亚洲在线| 久久精品国产综合| 国产一区二区激情| 亚洲国产合集| 国产日韩欧美一区二区三区在线观看| 老司机久久99久久精品播放免费 | 亚洲大胆美女视频| 亚洲毛片在线看| 狠狠色综合一区二区| 亚洲国产欧美日韩另类综合| 欧美国产日韩精品| 欧美华人在线视频| 国产日韩欧美一区二区三区在线观看| 欧美 日韩 国产在线| 欧美日韩无遮挡| 女人色偷偷aa久久天堂| 国产精品一区在线播放| 欧美激情亚洲| 一本色道**综合亚洲精品蜜桃冫| 欧美在线免费观看亚洲| 在线亚洲+欧美+日本专区| 另类天堂av| 久久激情五月婷婷| 欧美午夜电影完整版| 久久国产精品亚洲77777| 国产精品超碰97尤物18| 99热在这里有精品免费| 亚洲另类自拍| 欧美黄色一区| 国产揄拍国内精品对白| 麻豆成人综合网| 国产一区再线| 欧美专区亚洲专区| 久久国产主播| 国产一区在线视频| 久久精品亚洲一区| 国产精品区一区二区三| 亚洲深夜福利视频| 国产精品99久久久久久白浆小说| 在线视频亚洲| 久久手机精品视频| 久久成人精品一区二区三区| 亚洲欧美国产高清| 国产精品成人v| 久久精品二区三区| 亚洲精品日日夜夜| 欧美激情在线观看| 日韩一区二区精品| 亚洲深夜福利视频| 久久成人精品电影| 亚洲女同精品视频| 久久精品视频亚洲| 精品1区2区3区4区| 免费中文字幕日韩欧美| 久久性天堂网| 先锋影音国产精品| 国产亚洲欧洲| 久久嫩草精品久久久精品| 亚洲电影免费观看高清完整版在线观看 | 激情一区二区| 久久男人资源视频| 欧美福利影院|