Detail práce
Optimalizace LINQ pro .NET
Tato práce se zabývá LINQ (Language integrated query) a řeší možnosti jeho implementace a optimalizace v jazyce C#. Je vybrána a implementována metoda přepisu dotazů na procedurální kód před překladem programu. Cílem práce je poskytnout LINQ využitelný, i při potřebě velké rychlosti. Pro vytvořený program přepisující dotazy LINQ, bylo pro většinu operátorů dosaženo zrychlení od 1.2x do 20x rychlosti System.Linq v závislosti na prováděném algoritmu, zdroji dat a množství poskytnutých informací přepisovacímu programu.
LINQ, C#, .NET, přepis kódu, analýza kódu, optimalizace, BenchmarkDotNet, algoritmy, datové struktury, dynamické dotazy, paralelní programování, SIMD, vkládání metod
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 C.
- Hlavní motivací práce je teze, že LINQ je výrazně pomalejší a paměťově náročnější než ekvivalentní blok odpovídajícího cyklu. Můžete toto tvrzení podložit naměřenými hodnotami pro reprezentativní příklady?
- Na str.28 uvádíte, že stejný LINQ nad shodnými daty může dávat v různých .NET implementacích jiné výsledky. Můžete prosím demonstrovat?
- Na obrázku 6.1 jsou uvedeny výsledné hodnoty pro různý počet prvků v seznamu. Co představuje osa X a konkrétně zde uvedená hodnota -1?
Grézl František, Ing., Ph.D. (UPGM FIT VUT), člen
Hradiš Michal, Ing., Ph.D. (UPGM FIT VUT), člen
Smrčka Aleš, Ing., Ph.D. (UITS FIT VUT), člen
Vašíček Zdeněk, doc. Ing., Ph.D. (UPSY FIT VUT), člen
@bachelorsthesis{FITBT23085, author = "Daniel \v{S}er\'{y}", type = "Bakal\'{a}\v{r}sk\'{a} pr\'{a}ce", title = "Optimalizace LINQ pro .NET", school = "Vysok\'{e} u\v{c}en\'{i} technick\'{e} v Brn\v{e}, Fakulta informa\v{c}n\'{i}ch technologi\'{i}", year = 2020, location = "Brno, CZ", language = "czech", url = "https://www.fit.vut.cz/study/thesis/23085/" }