En Prestandaanalys Av Entity Framework
2021 (Swedish)Independent thesis Basic level (degree of Bachelor), 10 credits / 15 HE credits
Student thesisAlternative title
A performance analysis of Entity Framework (English)
Abstract [sv]
Syfte – Syftet med arbetet är att påvisa eventuella prestandaskillnader i form av exekveringstid och orsaker till dessa vid användandet av aktuell programversion av Entity Framework och manuell SQL.
Metod – Studiens ansats är kvantitativ och experiment har utförts via en egenutvecklad .NET console application. Åtta olika tester har körts där varje test utförts med tre olika antal databasentiteter. Den icke-parametriska statistiska tekniken bootstrapping har legat till grund för analys av data.
Resultat – Testresultatet visar att Entity Framework var långsammare än manuell SQL i samtliga tester. Då hade även justeringar gjorts för att förbättra Entity Framework exekveringstid jämfört med standardförfarandet. Sammanfattningsvis hade Entity Framework, med undertag för vissa testscenarion, ungefär 50-150% långsammare exekveringstid än manuell SQL. Den procentuella skillnaden var överlag konstant när antal databasentiteter ökade, åter med vissa undantag. Studien kom även fram till att det går att förbättra Entity Frameworks prestanda genom att använda AsNoTracking, AutoDetectChangesEnabled = false och EFCore.BulkExtensions. I hur stor grad förbättringarna påverkade exekveringstiden varierade mycket stort. Vid sekventiell Select och Delete lyckades endast 1-4% förbättring uppnås till skillnad från sekventiell Insert och Update där förbättringen blev 167-1809%.
Implikationer – Resultatet i denna studie kan förhoppningsvis bidra till beslutsunderlag för utvecklare som överväger använda EF till ett nytt system, samt belysa eventuella refaktoreringspotential för de som förvaltar existerande system med EF där prestandan är otillräcklig.Begränsningar – Studiens tester är utformade att vara enkla och testa den mest grundläggande funktionalitet i en databas och motsvarar inte vissa komplexa scenarion som kan förekomma i en verklig applikation.Nyckelord – ORM, Entity Framework, EF Core, SQL, Databas, Prestanda
Nyckelord – ORM, Entity Framework, EF Core, SQL, Databas, Prestanda
Abstract [en]
Purpose – The purpose of the study is to demonstrate performance differences in the form of execution time and reasons for these when using the current software version of Entity Framework and manual SQL.
Method – The scientific method used is quantitative and experiments have been performed via a self-developed .NET console application. Eight different tests have been run where each test was performed with three different numbers of database entities. The non-parametric statistical technique bootstrapping has been the basis for data analysis.
Findings – The test results show that Entity Framework was slower than manual SQL across all tests, despite adjustments that had been made to improve the Entity Framework execution time compared to the standard approach. To summarize, Entity Framework had with the exception of some test scenarios, approximately 50-150% slower execution time than manual SQL. The percentage difference was generally constant as the number of database entities increased, again with some exceptions. The study also concluded that the performance of Entity Framework can be improved by using AsNoTracking, AutoDetectChangesEnabled = false and EFCore.BulkExtensions. The extent to which the improvements affected the execution time varied greatly. With sequential Select and Delete, only 1-4% improvement was achieved, unlike sequential Insert and Update where the improvement was 167-1809%.
Implications – The results of this study can hopefully contribute to the decision basis for developers who are considering using EF for a new system, as well as highlight any refactoring potential for those who manage existing systems with EF where performance is insufficient.
Limitations – The tests are designed to be simple and test the most basic database functionality and do not correspond to certain complex scenarios that may occur in a real application.
Keywords – ORM, Entity Framework, EF Core, SQL, Database, Performance
Place, publisher, year, edition, pages
2021. , p. 66
Keywords [sv]
ORM, Entity Framework, EF Core, SQL, Databas, Prestanda
National Category
Information Systems
Identifiers
URN: urn:nbn:se:hj:diva-52963ISRN: JU-JTH-DTA-1-20210125OAI: oai:DiVA.org:hj-52963DiVA, id: diva2:1562730
Subject / course
JTH, Computer Engineering
Supervisors
Examiners
2021-06-092021-06-092021-06-09Bibliographically approved