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

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>
              亚洲欧洲日本国产| 久久久91精品| 欧美新色视频| 亚洲性感美女99在线| 亚洲精品一区二区三区樱花| 欧美国产日韩一区二区三区| 亚洲免费av片| 亚洲一区二区高清| 国产日韩亚洲欧美精品| 久久久久亚洲综合| 久久综合五月天婷婷伊人| 亚洲免费观看在线观看| 一本一道久久综合狠狠老精东影业| 国产精品jizz在线观看美国 | 国产欧美一区二区精品婷婷| 久久久av毛片精品| 男人的天堂亚洲| 亚洲综合精品一区二区| 午夜一区不卡| 亚洲精品三级| 午夜精品久久| 亚洲三级网站| 亚洲欧美在线一区二区| 亚洲国产一区在线观看| 中文亚洲视频在线| 亚洲高清自拍| 亚洲一区激情| 亚洲美女诱惑| 久久国产黑丝| 中文一区字幕| 久久蜜臀精品av| 亚洲欧美欧美一区二区三区| 久久琪琪电影院| 欧美在线视频一区二区| 欧美黄色影院| 蜜月aⅴ免费一区二区三区 | 久久久久久久综合| 亚洲在线观看视频网站| 久久婷婷色综合| 欧美在线观看视频在线| 亚洲一线二线三线久久久| 欧美18av| 国产一区二区黄色| 日韩天堂av| 亚洲日本激情| 久久九九99视频| 欧美一区三区二区在线观看| 欧美精品手机在线| 欧美夫妇交换俱乐部在线观看| 国产精品永久在线| 在线视频你懂得一区二区三区| 亚洲激情在线观看| 久久嫩草精品久久久精品| 欧美一区二区在线免费观看| 欧美特黄一区| 99av国产精品欲麻豆| 日韩视频专区| 欧美国产一区二区三区激情无套| 麻豆av一区二区三区| 国产在线观看91精品一区| 亚洲伊人久久综合| 亚洲新中文字幕| 国产精品久久77777| 日韩亚洲综合在线| 一二三四社区欧美黄| 欧美精品一级| aa亚洲婷婷| 亚洲欧美日韩爽爽影院| 国产精品久久久久毛片大屁完整版| 日韩亚洲欧美成人| 亚洲欧美日韩国产精品| 国产精品免费一区二区三区观看| 亚洲视频一区二区在线观看| 午夜精彩国产免费不卡不顿大片| 国产精品毛片| 久久国产精品色婷婷| 老**午夜毛片一区二区三区| 亚洲电影观看| 欧美精品久久久久久久久久| 99视频国产精品免费观看| 亚洲免费视频网站| 国产日韩欧美一区| 久久免费国产精品| 亚洲人成亚洲人成在线观看| 亚洲精品一二三区| 国产精品草莓在线免费观看| 午夜视频精品| 裸体女人亚洲精品一区| 亚洲男女自偷自拍| 国产精品成人在线| 欧美一级免费视频| 欧美激情视频网站| 亚洲一区在线观看免费观看电影高清| 国产精品综合久久久| 久久亚洲精品欧美| 99视频国产精品免费观看| 久久久999成人| 在线视频欧美日韩精品| 国产一区二区三区观看 | 亚洲电影免费观看高清| 欧美精品一区视频| 国产亚洲午夜| 欧美色一级片| 亚洲国产精品欧美一二99| 在线视频欧美日韩| 在线视频国产日韩| 国产精品久久久久久妇女6080 | 伊人激情综合| 一区二区三区毛片| 国产精品成人免费精品自在线观看| 亚洲永久免费av| 欧美激情免费观看| 日韩亚洲成人av在线| 国产日韩精品一区| 欧美激情导航| 久久黄色网页| 亚洲美女黄色| 99国产精品国产精品久久| 亚洲福利在线观看| 国产精品久久久一区二区| 欧美va亚洲va国产综合| 亚洲天堂黄色| 欧美国产91| 久久亚洲欧美| 欧美一区二区精品久久911| 亚洲精品一区二区三| 尤物yw午夜国产精品视频| 国产精品美女999| 欧美日韩国产三区| 免费观看国产成人| 久久激情五月丁香伊人| 一区二区高清在线观看| 亚洲精品国产品国语在线app| 久久爱www久久做| 亚洲欧美www| 亚洲一品av免费观看| 日韩午夜在线电影| 亚洲国产精品久久久久| 国外成人在线视频网站| 国产精品美女www爽爽爽| 欧美亚州一区二区三区| 欧美人牲a欧美精品| 欧美成人免费一级人片100| 久久久久久9| 久久九九精品99国产精品| 欧美在线91| 先锋资源久久| 欧美一区二区三区在线| 午夜精品久久久| 欧美有码在线视频| 久久成人精品视频| 久久精品一区二区三区中文字幕| 久久精品国产99国产精品| 欧美中文字幕在线观看| 久久精品日韩欧美| 久久精品视频99| 久久综合九色| 欧美激情精品久久久久久大尺度 | 一二三四社区欧美黄| 日韩亚洲视频| 亚洲一区二区动漫| 欧美在线不卡| 美腿丝袜亚洲色图| 欧美另类一区二区三区| 国产精品国产三级国产专区53 | 麻豆国产va免费精品高清在线| 麻豆精品91| 欧美日韩一二三四五区| 国产精品午夜电影| 在线观看不卡av| 亚洲精选视频在线| 亚洲欧美www| 免费成人黄色av| 9久re热视频在线精品| 欧美一区在线看| 久久久久久高潮国产精品视| 欧美成人免费网站| 一本色道久久99精品综合| 欧美在线91| 欧美色偷偷大香| 国产综合色产在线精品| 一本久久综合亚洲鲁鲁| 久久久久久久久久码影片| 亚洲欧洲精品天堂一级| 午夜视频久久久久久| 欧美精品v日韩精品v国产精品| 国产精品视频观看| 亚洲精品久久| 久久久精品五月天| 亚洲理论在线观看| 久久久久久网址| 国产精品福利影院| 亚洲人午夜精品免费| 久久精品国产v日韩v亚洲 | 亚洲欧美日韩视频一区| 欧美激情一区二区在线| 欧美一区综合| 国产精品久久999| 99re成人精品视频| 欧美+日本+国产+在线a∨观看|