Optimalizace LINQ pro .NET
.NET's LINQ Optimization

Author
Advisor
Pluskal, JanReferee
Ryšavý, OndřejGrade
CAltmetrics
Metadata
Show full item recordAbstract
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. This thesis deals with LINQ (Language integrated query) and investigates possibilities of its implementation and optimization in C# language. Method of rewriting of query to procedural code is chosen and implemented. The goal is to provide a LINQ that can be used in code with the need for high speed. Regarding the program created for rewriting LINQ queries, the performance of most operators has been increased by 1.2x to 20x of System.Linq speed depending of rewritten algorithm, data source and provided information to rewriting program.
Keywords
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, LINQ, C#, .NET, code rewriting, code analysis, optimization, BenchmarkDotNet, algorithms, data structures, dynamic queries, parallel programming, SIMD, method inliningLanguage
čeština (Czech)Study brunch
Informační technologieComposition of Committee
doc. Ing. Ondřej Ryšavý, Ph.D. (předseda) doc. Ing. Zdeněk Vašíček, Ph.D. (místopředseda) Ing. František Grézl, Ph.D. (člen) Ing. Michal Hradiš, Ph.D. (člen) Ing. Aleš Smrčka, Ph.D. (člen)Date of defence
2020-07-10Process of defence
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. Otázky u obhajoby: 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?Result of the defence
práce byla úspěšně obhájenaPersistent identifier
http://hdl.handle.net/11012/191523Source
ŠERÝ, D. Optimalizace LINQ pro .NET [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2020.Collections
- 2020 [298]