HÁJEK, V. Analýza výkonu programů v jazyce C# [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2023.
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ě: Nástroj umožňuje sledovat spotřebu dvou zdrojů (čas a paměť) namísto jednoho požadovaného. Byly implementovány celkem dvě různé vizualizace výsledků namísto jedné požadované. Experimentální vyhodnocení výsledků proběhlo celkem na třech netriviálních a reálně používaných projektech namísto jednoho požadovaného. 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.
Kritérium | Známka | Body | Slovní hodnocení |
---|---|---|---|
Informace k zadání | 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í. | ||
Práce s literaturou | Student zvládal samostatně hledat a studovat literaturu relevantní k tématu. | ||
Aktivita během řešení, konzultace, komunikace | 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. | ||
Aktivita při dokončování | Práce byla dokončena s mírným předstihem. | ||
Publikační činnost, ocenění | 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í. |
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í.
Kritérium | Známka | Body | Slovní hodnocení |
---|---|---|---|
Náročnost zadání | |||
Rozsah splnění požadavků zadání | 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. | ||
Rozsah technické zprávy | |||
Prezentační úroveň technické zprávy | 85 | 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. | |
Formální úprava technické zprávy | 69 | 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. | |
Práce s literaturou | 90 | Bez připomínek. | |
Realizační výstup | 89 | 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. | |
Využitelnost výsledků | 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ů. |
eVSKP id 148641