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.

Posudky

Posudek vedoucího

Pavela, Jiří

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.

Dílčí hodnocení
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í.
Navrhovaná známka
A
Body
90

Posudek oponenta

Rogalewicz, Adam

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í.

Dílčí hodnocení
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ů.
Navrhovaná známka
C
Body
75

eVSKP id 148641