Rational PurifyPlus<br />Nhóm F5 + F6<br />Giảngviênlýthuyết : thầyLâmQuangVũ<br />Giảngviênhướngdẫn : thầyBùiTấnLộc<br />...
Nội dung trìnhbày<br />Giớithiệuchungvề Rational PurifyPlus<br />Giớithiệucáccôngcụtrong Rational PurifyPlus<br />Rational...
1. Giớithiệuvề Rational PurifyPlus<br />Côngdụng : kiểmtra performance củaứngdụng<br />Phiênbảnmớinhất : Rational PurifyPl...
2. Cáccôngcụtrong Rational PurifyPlus<br />Rational Purify<br />Rational Quantify<br />Rational PureCoverage<br />
a. Rational Purify<br />Xétđoạn code sau :<br />#include <windows.h><br />WINAPI<br />WinMain( HINSTANCE  hInstance, HINST...
a.Rational Purify (tt)<br />Chứcnăng : kiểmtranhữnglỗiliênquanđếnvùngnhớ, sựròrĩvùngnhớtrongquátrình runtime<br />Cácngônn...
a. Rational Purify<br />Cácngônngữ Java, .Netcóxảyrahiệntượngròrĩbộnhớ ?<br />
a. Rational Purify với Java và .NET<br />
a. Rational PurifyPlusvới Java và .NET<br />Cácbướcphântích memory leaks:<br />Chạychươngtrình Java bằng Purify<br />Chụp ...
a. Rational PurifyPlusvới Java và .NET<br />VD :<br />
b. Rational Quantify<br />Côngdụng : Kiểmtracáclỗigây “nghẽncổchai” chochươngtrình<br />Kiểmtravớicácngônngữ<br />C/C++<br...
b. Vídụ Rational Quantify<br />
b. Vídụ Rational Quantify<br />
c. Rational PureCoverage<br />Định nghĩa<br /><ul><li>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 </li></li></ul><li>Coverage – Cáchsửdụng<br />Cáchchạy coverage cũngtư...
Upcoming SlideShare
Loading in …5
×

Rational purify plus

574 views
474 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
574
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

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
  • Rational purify plus

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

    ×