Rational purify plus

  • 357 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
357
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • 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

Transcript

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 2. Cáccôngcụtrong Rational PurifyPlus
    Rational Purify
    Rational Quantify
    Rational PureCoverage
  • 5. 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})
  • 6. 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)
  • 7. a. Rational Purify
    Cácngônngữ Java, .Netcóxảyrahiệntượngròrĩbộnhớ ?
  • 8. a. Rational Purify với Java và .NET
  • 9. 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
  • 10. a. Rational PurifyPlusvới Java và .NET
    VD :
  • 11. 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 :
  • 12. b. Vídụ Rational Quantify
  • 13. b. Vídụ Rational Quantify
  • 14. c. Rational PureCoverage
    Định nghĩa
    • Là 1 thành phần của PurifyPLus
    • 15. Có chức năng kiểm tra mức độ thực thi của code
    • 16. 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:
  • 17. 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