Teljesítmény Mérés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 1 / 20
Tartalomjegyzék 1 Bevezetés 2 Visual Studio Kód metrikák Performance Explorer Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 2 / 20
Algoritmus Elmélet Elméletileg megoldhatóság Gyakorlati problémák Algoritmusok osztályozás Véges erőforrások Tár Idő Ordo jelölés: Legyen f, g : N C függvények, ekkor a f = O(g) jelöli, hogy c > 0 konstans és n 0 Z + küszöb úgy, hogy n > n 0 esetén f (n) c g(n). Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 3 / 20
Tár és Idő Tár Memória Virtuális Memória Kezelés "Véges" Gyakorlatilag végtelennek tekinthető Idő Kritikus erőforrás Felhasználók türelmetlenek Számítás igényes feladatok Hatékonyság! Valós időben megoldható? Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 4 / 20
Algoritmusok komplexitása Lineáris idejű algoritmusok O(n) (Lineáris keresés,... ) Polinomiális idejű algoritmusok O(n 2 ), O(n 3 ),... (Buborék rendezés, Gaus elimináció,... ) Logaritmikus idejű algoritmusok O(log n) (Logaritmikus keresés, keresés fában) Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 5 / 20
Tartalomjegyzék 1 Bevezetés 2 Visual Studio Kód metrikák Performance Explorer Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 6 / 20
Code Metrics Szoftver mérési eszköz Forráskód elemzés Refactoring Kockázat feltárás Projekt aktuális állapota Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 7 / 20
Code Metrics Mérőszámok Maintainability Index Cyclomatic Complexity Depth of Inheritance Class Coupling Lines of Code Maintainability Index 0 100 közötti érték 100 Relatív érték Kód karbantarthatósága Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 8 / 20
Code Metrics Depth of Inheritance Öröklődés mélysége Mélyebb hierarchia bonyolultabb Lines of Code Kódsorok száma Hosszabb kód Bonyolultság Tervezési hiba Felbontható Nehéz karbantartani Class Coupling Osztályok összehasonlítása Paraméterek Lokális változók Visszatérési értékek Metódus hívások Ősosztály Interface Alacsony érték Magas érték tervezési hiba Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 9 / 20
Cyclomatic Complexity Strukturális komplexitás Alacsony érték Vezérlés mint irányított gráf Bonyolultabb vezérlés Bonyolultabb tesztelés Nehezebb karbantarthatóság M = E N + 2P M bonyolultság E Élek száma N Csomópontok száma P Összefüggő komponensek száma Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 10 / 20
Tartalomjegyzék 1 Bevezetés 2 Visual Studio Kód metrikák Performance Explorer Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 11 / 20
Visual Studio Visual Studio része Alkalmazások vizsgálata Mérések Futásidő Metódus hívások Report készítés Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 12 / 20
Performance Explorer Mérések futtatása Elemzés Varázsló Performance Session Release mód Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 13 / 20
Jelentések Mérési eredmények Részei 1 Összegző idővonal 2 Hot Path 3 Függvények Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 14 / 20
Idővonal Összefoglaló eredmények CPU használat Időbeli változás Számítás igényes szakaszok I/O igényes szakaszok Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 15 / 20
Hot Path A legköltségesebb út A legaktívabb rész Inclusive Tartalmazhat System függvényeket Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 16 / 20
Függvények Részletező eredmények Metódusonként Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 17 / 20
Inclusive, Exclusive Inclusive Metódusban töltött idő, a benne történő metódushívások idejével együtt. Exclusive Metódusban töltött idő, a benne történő metódushívások ideje nélkül. Következmény: Inclusive Exclusive Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 18 / 20
Metódus elemzés Metódusok egyenkénti vizsgálata Részei Költség eloszlás Kód nézet Költség Honnan hívták Miket hívott Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 19 / 20
Metódus elemzés Forrás kód Egyes műveletek költségei Tippek Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 20 / 20