Prace dyplomowe
Analiza i ocena wydajności aplikacji dla firm zaprojektowanych w języku Java w wersji 8 i 11 [07.2021] [LINK] [github]
Badania przeprowadzone w ramach pracy magisterskiej. Celem pracy jest analiza i porównanie wydajnościowe aplikacji zaprojektowanych w języku programowania Java w wersji 8 oraz w wersji 11.
W pracy zostały zastosowane następujące metody badawcze:
- badanie dokumentów – przegląd literatury w zakresie zmian wydajnościowych między wersjami języka programowania,
- projektowanie i analiza algorytmów – rozpatrywanie i wybór algorytmów pod kątem wydajnościowym,
- eksperyment naukowy, symulacja komputerowa – wytworzenie kodu źródłowego, skompilowanie do kodu bajtowego zgodnie z wersją języka programowania, uruchomienie zbudowanej aplikacji w wcześniej skonfigurowanym środowisku uruchomieniowym,
- obserwacja – porównanie, ustalenie podobieństw i różnić w wydajności aplikacji. Wyciągnięcie wniosków z przeprowadzonych badań i wyjaśnienie otrzymanych wyników z eksperymentu naukowego.
Poruszone obszary:
- pamięć Java i garbage collectors (SerialGC, ParallelGC, CMSGC, G1GC, ZGC, EpsilonGC),
- kompilator JIT (standardowy, Graal),
- kompilator AOT,
- podstawowe biblioteki,
- JVM,
- wersjonowanie i licencjonowanie.
Część serwerowa systemu automatycznej ewaluacji zadań algorytmicznych [02.2019] [LINK] [github]
Celem projektu jest automatyzacja ewaluacji zadań algorytmicznych oraz czynności do zarządzania oraz organizowania grup zajęciowych. Architektura aplikacji wspiera pełną skalowalność. Wdrożona na chmurę google cloud. System zaprojektowany w ramach pracy inżynierskiej.
Podstawowe wymagania stawiane przed aplikacją to: zarządzanie grupami zajęciowymi, system uwierzytelnienia i autoryzacji, system powiadomień, tworzenie i zarządzanie zadaniami (poprawnościowe, wydajnościowe i code golf), tworzenie i zarządzanie testami w obrębie danego zadania (publiczny, prywatny i ukryty), automatyzacja wykonania kodu źródłowego oraz jego ocena.