Přístupnostní navigace
E-přihláška
Vyhledávání Vyhledat Zavřít
bakalářská práce
Autor práce: Bc. Vojtěch Hájek
Ak. rok: 2022/2023
Vedoucí: Ing. Jiří Pavela
Oponent: doc. Mgr. Adam Rogalewicz, Ph.D.
Cílem této práce je rozšířit výkonnostní verzovací systém – Perun implementací modulu pro profilování programů napsaných v jazyce C#. Toto rozšíření implementuje profiler s technikou sledování událostí, které jsou získávány pomocí .NET runtime profilovacího aplikačního rozhraní. Profiler dokáže sbírat metriky o sledování funkcí a spotřebě paměti. Naměřené profily potom dokáže dále interpretovat do grafů jako je korelační diagram nebo mapa stromu volání.
C#, .NET, profilování, výkonnostní testování, Perun, dynamická analýza
Termín obhajoby
15.06.2023
Výsledek obhajoby
obhájeno (práce byla úspěšně obhájena)
Klasifikace
B
Průběh obhajoby
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm B.
Otázky k obhajobě
Jazyk práce
čeština
Fakulta
Fakulta informačních technologií
Ústav
Ústav inteligentních systémů
Studijní program
Informační technologie (BIT)
Složení komise
prof. Ing. Tomáš Vojnar, Ph.D. (předseda) doc. Ing. Petr Matoušek, Ph.D., M.A. (člen) Ing. František Grézl, Ph.D. (člen) doc. Ing. Tomáš Martínek, Ph.D. (člen) Ing. Matěj Grégr, Ph.D. (člen)
Posudek vedoucíhoIng. Jiří Pavela
Student v rámci řešení zadání prokázal schopnost samostatné práce, ať už z hlediska studia relevantních materiálů, tak z hlediska výsledné realizace. Student svůj pokrok při řešení práce a psaní technické zprávy pravidelně konzultoval. Výsledné řešení obsahuje práci nad rámec celkem tří bodů zadání, konkrétně:
Jedinou nedotaženou stránkou práce je odložená integrace do nástroje Perun z důvodu nízké priority. Toto však proběhlo po domluvě s konzultanty projektu. Architektura nástroje jako takového byla ale navržena a implementována studentem takovým způsobem, aby byla integrace nástroje v budoucnu snadná. Jedná se pouze o drobný nedostatek v porovnání s kvalitou výsledné realizace a prací nad rámec požadavků zadání. Z těchto důvodů proto navrhuji hodnocení stupněm A.
Náročnost zadání bakalářské práce hodnotím jako průměrné. Jedná se o téma, které vyžaduje nastudování principů profilování spotřeby zdrojů a důkladné pochopení instrumentace programů ve zvoleném programovacím jazyce. Vypracované řešení je kvalitní a několik bodů zadání bylo studentem vyřešeno nad rámec požadavků zadání. Jedinou nedotaženou stránkou práce je chybějící integrace profilovacího nástroje do nástroje Perun, která byla po domluvě s vývojáři nástroje odložena z důvodu nízké priority. Architektura nástroje jako takového však byla navržena a implementována studentem takovým způsobem, aby byla integrace nástroje triviální.
Student zvládal samostatně hledat a studovat literaturu relevantní k tématu.
Student byl v průběhu řešení práce velmi aktivní a pravidelně se účastnil domluvených schůzek. Stejně tak průběžně konzultoval stav technické zprávy, kterou začal vypracovávat už v průběhu zimního semestru.
Práce byla dokončena s mírným předstihem.
Výsledný nástroj je zveřejněn jako open-source a bude součástí open-source nástroje Perun. Navržené řešení navíc umožňuje rozšířit nástroj Perun o multiplatformní profilování.
Známka navržená vedoucím: A
Posudek oponentadoc. Mgr. Adam Rogalewicz, Ph.D.
Jedná se o pěknou práci, kterou ale trochu kazí formální nedostatky v kapitole 2 a výtky ke splnění bodu 3 zadání.
Stupeň hodnocení: průměrně obtížné zadání
Stupeň hodnocení: zadání splněno pouze částečně s drobnými výhradami
Mám připomínku ke splnění bodu 3 zadání, který čistě formalisticky není splněn. Nástroj je implementován jako samostatně stojící modul, který není aktuálně do Peruna integrován. Důvodem jsou drobné technické rozdíly mezi implementací DotNet pro Windows a Linux, které zdržely plné rozchození nástroje po Linuxem. Perun na druhou stranu může teoreticky běžet i na Windows, ale tato verze není aktuálně podporována/udržována. Student nicméně udělal dostatečně velký kus práce a vlastní ne-integraci do Peruna lze považovat pouze za drobnou chybu. Při formulaci bodu 3 jako "Navrhněte a implementujte nástroj integrovatelný do Peruna" by zadání bylo splněno v plném rozsahu.
Stupeň hodnocení: je v obvyklém rozmezí
Práce je logicky členěna do kapitol, které na sebe navazují. Všechny důležité aspekty návrhu a implementace jsou popsány.
V práci se vyskytují překlepy a typografické chyby. Narazil jsem na ně hned v kapitole 2, která trochu působí dojmem dodělávání na poslední chvíli. (i) překlepy: "Eexecution", "stupňích", (ii) odkazy na další sekce nejsou jednotné: viz poslední řádek sekce 2.2.1 a 2.2.2.
Od kapitoly 3 dále je formální stránka práce v pořádku.
Bez připomínek.
Realizačním výstupem je nástroj umožňující profilování vybraných metrik C# programů, konkrétně sledování volání funkcí a času jejich běhu, sledování alokace objektů a sledování garbage collectingu. Nástroj je použitelný i samostatně mimo Perun framework. Jeho integrace do Peruna bude pomyslnou třešničkou.
Vytvořený profiler může být přímo použit vývojáři C#. Vlastní práce pak jako dokumentace pro vytváření profilerů.
Známka navržená oponentem: C
Odpovědnost: Mgr. et Mgr. Hana Odstrčilová