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

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

搜索

  •  

積分與排名

  • 積分 - 1812199
  • 排名 - 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>
              欧美影院午夜播放| 欧美有码在线视频| 亚洲三级免费电影| 亚洲影院免费观看| 一区二区三区回区在观看免费视频| 亚洲国产精品久久久久婷婷老年| 久久av二区| 久久欧美中文字幕| 亚洲电影在线免费观看| 亚洲高清精品中出| 9色porny自拍视频一区二区| 亚洲一二三区在线| 欧美性事免费在线观看| 国产欧美日本一区二区三区| 极品日韩久久| 日韩视频欧美视频| 欧美在线在线| 欧美激情亚洲综合一区| 99精品国产福利在线观看免费| 性伦欧美刺激片在线观看| 久久综合九色九九| 国产精品xnxxcom| 在线欧美日韩| 性欧美1819sex性高清| 欧美激情精品久久久久久蜜臀| av成人免费观看| 久久精品视频免费观看| 欧美精品一区二区三区视频 | 美腿丝袜亚洲色图| 国产精品久久二区| 亚洲国产高清高潮精品美女| 亚洲综合视频一区| 你懂的网址国产 欧美| 99riav国产精品| 久久精品一二三| 国产精品美女视频网站| 91久久精品国产91久久性色| 亚洲欧美日韩在线综合| 亚洲国产另类精品专区| 欧美在线一二三区| 国产精品久久久久久久久动漫 | 老司机精品福利视频| 国产乱码精品一区二区三区五月婷 | 国产精品一区二区在线观看网站 | 久久大逼视频| 久久精品视频免费观看| 亚洲专区在线| 欧美激情一区二区| 欧美一区二区三区日韩视频| 欧美调教vk| 一区二区三区波多野结衣在线观看| 六月天综合网| 久久久久久亚洲精品中文字幕| 国产精品影院在线观看| 亚洲欧美日韩精品| 夜夜爽www精品| 欧美经典一区二区| 亚洲精品综合在线| 最新日韩在线| 女人色偷偷aa久久天堂| 亚洲啪啪91| 欧美激情中文字幕在线| 欧美精品激情| 这里只有精品丝袜| 一区二区三区国产在线观看| 欧美日韩美女一区二区| 亚洲视频一区二区免费在线观看| 亚洲美女少妇无套啪啪呻吟| 欧美日韩亚洲三区| 午夜免费在线观看精品视频| 亚洲免费在线观看| 国产欧美日韩激情| 蜜桃视频一区| 欧美精品一区二区高清在线观看| 99精品免费网| 亚洲一级在线| 狠狠噜噜久久| 亚洲国产精品美女| 国产精品久久久久99| 欧美伊人影院| 久久亚洲春色中文字幕久久久| 亚洲日本电影| 一区二区三区导航| 国产在线观看91精品一区| 欧美成人免费在线| 欧美日韩亚洲系列| 久久久夜夜夜| 欧美精品一区二区蜜臀亚洲| 亚洲一区二区三区精品视频| 亚洲永久免费观看| 一区二区视频免费在线观看| 亚洲国产黄色| 国产欧美69| 亚洲精品视频一区二区三区| 国产精品亚洲综合色区韩国| 毛片基地黄久久久久久天堂| 欧美日韩亚洲国产精品| 久久婷婷麻豆| 欧美日韩你懂的| 久久久亚洲精品一区二区三区| 欧美女激情福利| 久久亚洲高清| 国产精品捆绑调教| 亚洲第一二三四五区| 国产精品久久久久国产精品日日| 模特精品在线| 国产毛片精品国产一区二区三区| 欧美二区在线播放| 99精品国产热久久91蜜凸| 欧美一区二区三区视频免费| 亚洲精品国产精品国自产观看| 亚洲性图久久| 一区二区三欧美| 狂野欧美激情性xxxx| 午夜精品在线看| 欧美日韩在线免费视频| 欧美高清视频一区二区三区在线观看| 国产精品扒开腿爽爽爽视频 | 一区二区精品国产| 樱花yy私人影院亚洲| 亚洲一区视频| 宅男在线国产精品| 欧美国产在线视频| 欧美福利一区二区三区| 黄色一区二区在线| 欧美专区日韩视频| 欧美综合国产| 国产精品一区二区三区久久| 亚洲网友自拍| 亚洲综合色自拍一区| 欧美日韩亚洲一区在线观看| 亚洲激情在线播放| 亚洲精品影视| 欧美精品在线视频| 亚洲人成亚洲人成在线观看图片| 亚洲国产裸拍裸体视频在线观看乱了 | 99国产精品私拍| 中日韩男男gay无套| 欧美日韩免费看| 亚洲伦理中文字幕| 亚洲在线成人精品| 国产精品久久久免费| 亚洲专区一区| 久久久久.com| 亚洲国产精品va| 欧美大片第1页| 亚洲美女中出| 亚洲欧美日韩国产综合在线 | 亚洲婷婷综合久久一本伊一区| 欧美极品影院| 亚洲图中文字幕| 久久国产精品一区二区三区| 国产一区二区三区无遮挡| 久久乐国产精品| 亚洲国产成人av| 一区二区三区四区国产精品| 国产精品蜜臀在线观看| 欧美在线啊v| 欧美好骚综合网| 亚洲网站啪啪| 国产一区二区三区在线免费观看 | 欧美一级黄色网| 久久久久看片| 艳女tv在线观看国产一区| 国产精品毛片va一区二区三区| 亚洲国产欧美一区| 久久手机免费观看| 欧美成人69av| 亚洲影院色在线观看免费| 国产一区二区三区在线播放免费观看| 久久一二三四| 在线亚洲免费视频| 欧美不卡视频一区发布| 亚洲一区精品电影| 亚洲国产精品久久久久婷婷老年| 欧美日韩中文字幕在线视频| 久久成人资源| 亚洲视频在线一区观看| 欧美成人亚洲成人日韩成人| 亚洲欧美美女| 亚洲免费成人| 在线观看欧美亚洲| 国产精品入口麻豆原神| 欧美xxxx在线观看| 欧美在线视频一区二区| 亚洲无人区一区| 91久久久精品| 理论片一区二区在线| 午夜精品影院在线观看| 99re6热只有精品免费观看| 一区在线视频| 国产精品一区二区你懂得 | 欧美.com| 性欧美长视频| 宅男精品视频| 亚洲经典在线看| 欧美高潮视频| 久久久综合精品| 午夜伦理片一区| 亚洲欧美中日韩|