Rational purify plus
Upcoming SlideShare
Loading in...5
×
 

Rational purify plus

on

  • 526 views

 

Statistics

Views

Total Views
526
Views on SlideShare
526
Embed Views
0

Actions

Likes
0
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • VD : Lớp A đượctạora ban đầu, sauđólớp B đượctạo. Trong A có 1 thuộctínhthamchiếutới B. B sau 1 thờigiankosửdụng, đượcxóakhỏivùngnhớ. Lớp A cũngkocònsửdụng, nhưng do cóchứathamchiếutới B nên garbage collector kothểxóalớp A được gâyròrĩbộnhớ
  • Khikiểmtrachươngtrìnhviếtbằngngônngữ Java, Purify hiểnthịbiểuđồbộnhớtronglúcchạy. Trongđócácbiến Current mem usage : bộnhớhiệnthời, Mem diff since snapshot : sựchênhlệchbộnhớtạithờiđiểmhiệntạivà snapshot, Peak memusage, bộnhớdùngcaonhất, Garbage Collector : sốlầngọi Garbage Collector. Trongquátrìnhchươngtrìnhchạy, chúngtasửdụngchứcnăng snapshot đểghilạicácthôngsốtạithờiđiểm snapshot. Chúngtacóthểthựchiện snapshot nhiềulần. Khikếtthúc, Purify cungcấpchứcnăng so sánhcáclần snapshot đểcóthểxácđịnhđượchàmgâyrahiệntượngròrĩbộnhớ. Purify, cũngcungcấpcôngcụgiúpgọi Garbage Collector trongquátrìnhchạychươngtrình
  • Thông tin của 1 lần snapshot. Trongđótachú ý đếnthamsố Calls, Current Method bytes allocated, Number of Objects đểxácđịnhhàmgâyrahiệntượngròrĩbộnhớtrong Java, .net
  • Saukhichạy, Rational Quantity, hiểnthịdạngcâycácphươngthứcđượcgọitrongquátrìnhchạy. Việchiểnthịbằngcâygiúpđịnhrõhơncấutrúccủachươngtrình. Khirêchuộtvào 1 núttrêncây, cácthông tin củaphươngthứcđóđượcthểhiệnbaogồm :ThờigianchạyThờigianchạy + cáchàm con chạySốlầnhàmđượcgọiTỉlệphầntrămthờigiancủahàmtrêntoànchươngtrình
  • Bảngthông tin chi tiếtvềthờigianchạycủatấtcảcácphươngthứcđượcgọiQua bảngnày, chúngtacóthểtiênđoánđượchàmgâyralỗinghẽncổchaivàtiếnhànhkiểmtralại source code. Quantity, cungcấpchứcnăng, hiểnthị source code, chi tiếtthờigianchạytừnghàngtrong source code

Rational purify plus Rational purify plus Presentation Transcript

  • Rational PurifyPlus
    Nhóm F5 + F6
    Giảngviênlýthuyết : thầyLâmQuangVũ
    Giảngviênhướngdẫn : thầyBùiTấnLộc
    TPHCM, tháng 05/2009
  • Nội dung trìnhbày
    Giớithiệuchungvề Rational PurifyPlus
    Giớithiệucáccôngcụtrong Rational PurifyPlus
    Rational Purify
    Rational Quantify
    Rational PureCoverage
  • 1. Giớithiệuvề Rational PurifyPlus
    Côngdụng : kiểmtra performance củaứngdụng
    Phiênbảnmớinhất : Rational PurifyPlus 7.0
    Cáctínhnăng :
    Kiểmtracácứngdụngviếtbằng C/C++, Visual Basic, managed code ( ngônngữ.Net, Java)
    Tíchhợpvào Visual Studio
  • 2. Cáccôngcụtrong Rational PurifyPlus
    Rational Purify
    Rational Quantify
    Rational PureCoverage
  • a. Rational Purify
    Xétđoạn code sau :
    #include <windows.h>
    WINAPI
    WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine,
    intnCmdShow )
    {
    inti, length;
    char *string1 = "Hello, Windows";
    char *string2 = malloc(10);
    length = strlen(string2);
    for (i = 0; string1[i] != '0'; i++) {
    string2[i] = string1[i]; }
    length = strlen(string2);
    MessageBox(NULL, " Hello, Windows", "The Windows Hello Dialog", MB_OK | MB_ICONINFORMATION);
    }
    hàmstrlenđọcđộdàichuỗi string2 chưađượckhởitạo
    (UMR – Unitialized Memory Read in strlen ( 1 occurrence)
    gángiátrịngoàiphạm vi củachuỗi
    (ABW – Array Bounds Write in WinMain {4 occurences})
    hàmstrlenđọcđộdàichuỗivượtquágiớihạnchuỗi
    (ABR : Array Bounds Read in strlen {1 occurrence})
  • a.Rational Purify (tt)
    Chứcnăng : kiểmtranhữnglỗiliênquanđếnvùngnhớ, sựròrĩvùngnhớtrongquátrình runtime
    Cácngônngữ :
    C/C++/VB
    Java, .NET (managed code)
  • a. Rational Purify
    Cácngônngữ Java, .Netcóxảyrahiệntượngròrĩbộnhớ ?
  • a. Rational Purify với Java và .NET
  • a. Rational PurifyPlusvới Java và .NET
    Cácbướcphântích memory leaks:
    Chạychươngtrình Java bằng Purify
    Chụp snapshot khicóviệcsửdụngbộnhớ.
    Thựcthinhữngphần code cóthểgây memory leaks và snapshot
    Xácđịnhcácphươngthứcchứa leaked object khôngđượcdọnbởi garbage collector
  • a. Rational PurifyPlusvới Java và .NET
    VD :
  • b. Rational Quantify
    Côngdụng : Kiểmtracáclỗigây “nghẽncổchai” chochươngtrình
    Kiểmtravớicácngônngữ
    C/C++
    Java và.Net
    Tíchhợpđượcvới Visual Studio
    Demo :
  • b. Vídụ Rational Quantify
  • b. Vídụ Rational Quantify
  • c. Rational PureCoverage
    Định nghĩa
    • Là 1 thành phần của PurifyPLus
    • Có chức năng kiểm tra mức độ thực thi của code
    • Giúp ta biết được 1 đoạn code đã được test hay chưa
  • Coverage – Cáchsửdụng
    Cáchchạy coverage cũngtươngtựnhưcácthànhphầnkhác:
  • Coverage – Cách sử dụng
    Dòng code này đã được gọi 2 lần
    Dòng code này chưa được gọi lần nào