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

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 夢在天涯 閱讀(958) 評論(0)  編輯 收藏 引用 所屬分類: C#/.NET 、VS2005/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

搜索

  •  

積分與排名

  • 積分 - 1816192
  • 排名 - 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>
              久久精品99国产精品酒店日本| 亚洲尤物精选| 欧美精品一区二区蜜臀亚洲 | 日韩午夜视频在线观看| 亚洲午夜一区二区| 国产午夜精品久久| 免费成人高清视频| 在线亚洲国产精品网站| 久久精品一本| 亚洲麻豆一区| 国产午夜精品全部视频在线播放| 久久免费视频网站| 一本久久综合亚洲鲁鲁五月天| 久久av红桃一区二区小说| 亚洲高清视频在线| 国产精品视频第一区| 久久久久久久久久久成人| 亚洲精品日韩一| 久久久天天操| 国产精品99久久久久久久女警| 国产日韩精品视频一区| 欧美激情综合色综合啪啪| 亚洲女优在线| 亚洲欧洲视频| 久久久噜噜噜| 亚洲尤物在线| 亚洲精品国产精品国自产在线| 国产精品美女999| 欧美.www| 久久精品人人做人人综合| 一区二区欧美激情| 欧美高清不卡| 久久久91精品国产| 亚洲少妇最新在线视频| 亚洲高清不卡av| 国产欧美一区二区三区久久人妖| 欧美激情一区二区三区成人| 欧美亚洲综合另类| 中文国产一区| 亚洲伦理一区| 亚洲韩国青草视频| 欧美.com| 久久露脸国产精品| 欧美一区在线视频| 亚洲无亚洲人成网站77777| 91久久在线观看| 激情综合电影网| 国产日韩欧美一二三区| 国产精品美女久久久久aⅴ国产馆| 欧美成人在线网站| 久久在线91| 久热精品视频在线免费观看| 久久av二区| 性欧美精品高清| 午夜精品理论片| 亚洲专区一区| 亚洲综合99| 亚洲中午字幕| 亚洲一区二区三区在线观看视频 | 久久精品视频免费| 欧美有码在线视频| 欧美一级久久久久久久大片| 中文在线资源观看网站视频免费不卡 | 国产伦精品免费视频| 国产精品成人一区| 欧美性jizz18性欧美| 国产精品成人av性教育| 国产精品xxx在线观看www| 欧美性大战久久久久久久蜜臀| 欧美日韩在线精品| 欧美色视频日本高清在线观看| 欧美日韩一二区| 欧美日韩一区二区国产| 欧美亚洲第一区| 国产精品亚洲不卡a| 国产精品一区在线观看| 国产小视频国产精品| 合欧美一区二区三区| 在线播放视频一区| 亚洲欧洲在线免费| 99在线视频精品| 亚洲欧美日韩网| 久久精品国内一区二区三区| 久久婷婷综合激情| 欧美高清视频一区二区三区在线观看 | 欧美午夜激情小视频| 国产精品日韩欧美| 激情综合网激情| 亚洲精品自在久久| 亚洲综合成人婷婷小说| 久久久久久久久久久久久久一区| 久热re这里精品视频在线6| 欧美不卡激情三级在线观看| 亚洲激情在线观看视频免费| 在线视频你懂得一区二区三区| 亚洲欧美国产高清va在线播| 久久久免费观看视频| 欧美精品免费在线观看| 国产精品三区www17con| **网站欧美大片在线观看| 一区二区三区产品免费精品久久75| 亚洲欧美日韩国产精品| 久久一区精品| 9国产精品视频| 久久精品国产第一区二区三区| 欧美国产欧美亚州国产日韩mv天天看完整 | 国产精品电影网站| 一区二区视频免费完整版观看| 日韩亚洲精品视频| 久久精品人人做人人爽电影蜜月 | 久久久国产精品亚洲一区| 欧美不卡三区| 国产视频久久| av成人老司机| 狼狼综合久久久久综合网| 在线视频精品一区| 裸体一区二区三区| 国产精自产拍久久久久久蜜| 亚洲精品一级| 久久嫩草精品久久久精品| 99视频有精品| 男女精品网站| 黄网站免费久久| 午夜国产精品视频| 亚洲激情一区二区三区| 久久久精品动漫| 国产欧美一区二区精品秋霞影院 | 欧美在线免费看| 亚洲精品国产精品久久清纯直播 | 免费中文日韩| 午夜精品久久久久99热蜜桃导演| 欧美激情第8页| 在线成人性视频| 久久久久久久网| 亚洲欧美日产图| 国产精品成人在线观看| 日韩视频永久免费| 欧美黄色精品| 久久免费视频一区| 国产亚洲一区精品| 久久av一区| 亚洲图片在区色| 欧美日韩在线观看一区二区三区 | 99视频一区二区三区| 欧美成人亚洲成人| 久久精品论坛| 黄色精品网站| 久久天天躁狠狠躁夜夜av| 性欧美在线看片a免费观看| 国产精品午夜春色av| 亚洲男人天堂2024| 亚洲视频久久| 国产精品国产三级国产| 亚洲一区二区在线看| 日韩亚洲精品视频| 欧美日韩中国免费专区在线看| 99精品视频免费观看视频| 亚洲欧洲另类| 欧美日韩亚洲天堂| 亚洲欧美日韩精品久久奇米色影视 | 国产一区导航| 久久午夜国产精品| 久久久久九九九| 亚洲国产精品成人久久综合一区 | 欧美日在线观看| 亚洲天堂av高清| 亚洲在线观看| 国产日韩欧美高清| 鲁大师成人一区二区三区| 久久美女艺术照精彩视频福利播放| 一色屋精品视频免费看| 欧美电影资源| 欧美日韩大片| 午夜精品区一区二区三| 欧美一区三区二区在线观看| 黄色国产精品| 最新日韩精品| 国产精品久久久久久一区二区三区 | 亚洲视频精品| 国内久久婷婷综合| 欧美激情精品久久久久久蜜臀| 欧美国产综合视频| 午夜影院日韩| 麻豆av一区二区三区| 在线一区二区视频| 欧美亚洲一级| 91久久在线| 亚洲淫片在线视频| 亚洲丶国产丶欧美一区二区三区 | 欧美风情在线| 午夜精品久久久久99热蜜桃导演| 欧美一级二级三级蜜桃| 亚洲欧洲另类| 亚洲自拍电影| 亚洲日本国产| 午夜欧美不卡精品aaaaa| 亚洲日本中文| 欧美一级电影久久| 日韩视频在线观看免费| 欧美亚洲色图校园春色|