SlideShare una empresa de Scribd logo
1 de 16
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] != ''; 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 ,[object Object]
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 ,[object Object]

Más contenido relacionado

Más de Nguyen Tran

Más de Nguyen Tran (20)

07state
07state07state
07state
 
06collaboration
06collaboration06collaboration
06collaboration
 
05sequence
05sequence05sequence
05sequence
 
04class
04class04class
04class
 
03usecase
03usecase03usecase
03usecase
 
02intro
02intro02intro
02intro
 
Clear case
Clear caseClear case
Clear case
 
Business process excution language
Business process excution languageBusiness process excution language
Business process excution language
 
Cm mi
Cm miCm mi
Cm mi
 
Sql packager
Sql packagerSql packager
Sql packager
 
Snag it
Snag itSnag it
Snag it
 
Record mydesktop
Record mydesktopRecord mydesktop
Record mydesktop
 
Rational suite&rational rose enterprise
Rational suite&rational rose enterpriseRational suite&rational rose enterprise
Rational suite&rational rose enterprise
 
Umodel 2009
Umodel 2009Umodel 2009
Umodel 2009
 
Rational composer method
Rational composer methodRational composer method
Rational composer method
 
Rational robot
Rational robotRational robot
Rational robot
 
Microsoft silverlight
Microsoft silverlightMicrosoft silverlight
Microsoft silverlight
 
Linq n hibernate net-tier
Linq n hibernate net-tierLinq n hibernate net-tier
Linq n hibernate net-tier
 
Jsf
JsfJsf
Jsf
 
Install shield
Install shieldInstall shield
Install shield
 

Rational purify plus

  • 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] != ''; 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 :
  • 14.
  • 15. Có chức năng kiểm tra mức độ thực thi của code
  • 16.
  • 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

Notas del editor

  1. 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ớ
  2. 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
  3. 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
  4. 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
  5. 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