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

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>
              麻豆成人精品| 亚洲欧美变态国产另类| 欧美一站二站| 欧美四级在线观看| 夜夜爽www精品| 欧美粗暴jizz性欧美20| 久久久久国内| 亚洲国产1区| 欧美激情第五页| 老司机精品视频一区二区三区| 国产亚洲欧美日韩一区二区| 香蕉久久夜色精品| 午夜精品网站| 国产一区二区三区精品久久久| 欧美一区二区三区视频| 亚洲制服av| 国产综合视频在线观看| 老司机一区二区三区| 欧美专区日韩视频| …久久精品99久久香蕉国产| 免费观看成人www动漫视频| 小黄鸭视频精品导航| 国内精品伊人久久久久av影院| 久久免费视频在线| 新狼窝色av性久久久久久| 国产综合欧美| 亚洲国产精品久久人人爱蜜臀| 欧美大色视频| 亚洲一区bb| 欧美中文字幕在线视频| 亚洲精品欧美精品| 一区二区三区毛片| 黑人一区二区| 亚洲精品在线电影| 国产精品毛片高清在线完整版| 久久人人爽人人爽| 欧美三级午夜理伦三级中视频| 亚洲系列中文字幕| 久久久久久久一区二区| 亚洲色图在线视频| 亚洲精品久久久久久久久久久| 亚洲福利视频在线| 欧美午夜片在线观看| 一区二区三区www| 欧美一区二区三区视频在线| 亚洲黄色尤物视频| 亚洲动漫精品| 国产亚洲欧美色| 亚洲精品影院| 国产日韩精品视频一区| 亚洲第一网站免费视频| 国产欧美一区二区精品仙草咪| 久久视频在线看| 国产精品国产成人国产三级| 免费成人av在线看| 国产日韩一区二区三区| 91久久黄色| 亚洲国产精品黑人久久久| 亚洲综合国产| a91a精品视频在线观看| 久久精品国产精品亚洲| 午夜激情综合网| 欧美日韩国产色站一区二区三区| 久久精品30| 国产精品一二三四区| 欧美大片va欧美在线播放| 国产午夜精品一区理论片飘花| 午夜亚洲性色视频| 久久精品一区| 依依成人综合视频| 美女福利精品视频| 91久久精品久久国产性色也91 | 免费视频久久| 亚洲人成毛片在线播放女女| 亚洲免费大片| 国产精品久久久久高潮| 亚洲无限av看| 久久先锋资源| 亚洲国产日日夜夜| 欧美日韩亚洲一区二| 亚洲网站在线播放| 久久久久高清| 亚洲日本成人| 欧美亚洲不卡| 欧美一区二区三区精品电影| 美日韩精品免费观看视频| 亚洲精品国产精品久久清纯直播 | 一区二区在线不卡| 你懂的国产精品永久在线| 亚洲精选在线| 久久精品亚洲精品| 日韩视频免费在线观看| 国产精品每日更新| 久久久精品动漫| 日韩视频一区二区三区在线播放免费观看| 亚洲一区精品视频| 狠狠色丁香婷婷综合久久片| 欧美激情亚洲另类| 午夜日韩av| 亚洲国产日日夜夜| 久久成人精品| 99re在线精品| 黑人一区二区三区四区五区| 欧美人与性禽动交情品 | 美国十次了思思久久精品导航| 亚洲黄色三级| 国产一区二区三区自拍| 欧美日韩国产综合久久| 欧美一区二区三区免费视| 亚洲国产影院| 免费在线观看日韩欧美| 亚洲欧美日韩国产另类专区| 在线日韩精品视频| 国产欧美欧美| 欧美日韩美女| 欧美成人一区二区三区在线观看| 午夜一区二区三区在线观看 | 免费h精品视频在线播放| 亚洲综合第一页| 一本色道久久99精品综合| 一区一区视频| 国产一区二区三区免费不卡| 欧美精品在线网站| 你懂的网址国产 欧美| 久久er精品视频| 性做久久久久久久免费看| 亚洲免费观看高清在线观看| 亚洲成人在线视频播放| 久久久久久久久久久久久女国产乱| 日韩视频在线观看免费| 亚洲激情社区| 亚洲国产成人久久综合| 精品成人免费| 樱桃国产成人精品视频| 国外成人性视频| 韩国一区二区三区在线观看| 国产精品青草久久| 国产精品综合| 国产亚洲a∨片在线观看| 国产精品视频网址| 国产精品伊人日日| 国产精品影音先锋| 国产亚洲毛片在线| 国产在线精品二区| 韩国成人理伦片免费播放| 海角社区69精品视频| 在线成人亚洲| 最近中文字幕日韩精品| 亚洲精品无人区| 99re成人精品视频| 亚洲中午字幕| 久久裸体艺术| 亚洲成在人线av| 日韩亚洲欧美成人一区| 亚洲一区二区三区四区视频| 亚洲男人的天堂在线| 欧美一级专区免费大片| 久久人人爽人人爽| 欧美国内亚洲| 国产精品久久亚洲7777| 国产日韩欧美一二三区| 亚洲成人在线| 日韩视频一区| 亚洲欧美在线视频观看| 久久综合精品国产一区二区三区| 欧美大片一区| 亚洲视频在线看| 久热精品视频在线免费观看| 欧美伦理a级免费电影| 国产精品人成在线观看免费 | 日韩一级精品| 欧美一区二区在线播放| 免费成年人欧美视频| 亚洲精品视频免费| 欧美一级视频| 欧美激情麻豆| 国内自拍亚洲| 国产精品欧美久久久久无广告| 国产区亚洲区欧美区| 亚洲欧洲一区| 久久精品一区二区| 亚洲乱码国产乱码精品精 | 亚洲麻豆一区| 久久久久国产一区二区| 国产精品www网站| 亚洲国产精品www| 久久国产精品免费一区| 亚洲国产日韩美| 欧美在线一二三| 欧美亚洲第一页| 亚洲欧洲日本mm| 久久影院午夜论| 亚洲一区二区在线看| 欧美黄网免费在线观看| 国语自产偷拍精品视频偷 | 一本色道久久综合| 欧美国产视频在线观看| 性做久久久久久| 国产精品亚洲一区| 亚洲一区二区三区中文字幕|