zurück zum Artikel

Entity Framework Core liest Datensätze deutlich schneller als das alte Entity Framework 6.x

Der Dotnet-Doktor

Für die Neuimplementierung des objektrelationalen Mappers Entity Framework Core [1] war für Microsoft neben dem Streben nach Plattformunabhängigkeit ein wesentlicher Beweggrund, die Performanz gegenüber dem bisherigen ADO.NET Entity Framework [2] zu steigern. Meine Leistungsmessungen zeigen: Die Leistungssteigerung ist (zumindest beim einfachen Lesen) von Datensätzen gelungen.

Die nachstehende Abbildung zeigt, dass Entity Framework Core 1.1 auf dem aktuellen .NET "Full" Framework 4.6.2 [3] im No-Tracking-Modus genauso schnell ist wie ein DataReader mit manuellem Mapping (d. h. Umkopieren in .NET-Objekt: obj.x = Convert(dr["x"]) ). Beim Betrieb auf .NET Core 1.1 [4] ist Entity Framework Core 1.1 sogar einen Hauch schneller als DataReader mit Umkopieren!

Auch im Tracking-Modus ist Entity Framework Core rascher als der Vorgänger ADO.NET Entity Framework 6.1.3 unterwegs. Hier ist die Einsparung mit 66 Prozent sogar noch größer als beim No-Tracking-Modus (40 %).

Die schnellste Messung (26 ms) stammt von einem DataReader, bei dem die Datensätze aber nicht auf Objekte abgebildet wurden.

Leistungsvergleich Entity Framework und Entity Framework Core mit DataReader und DataSet
Leistungsvergleich Entity Framework und Entity Framework Core mit DataReader und DataSet

Hinweise zum obigen Messszenario:


URL dieses Artikels:
http://www.heise.de/-3492649

Links in diesem Artikel:
[1] http://www.dotnet-lexikon.de/Entity_Framework_Core/lex/8501.aspx
[2] http://www.dotnet-lexikon.de/ADONET_Entity_Framework/lex/4365.aspx
[3] http://www.dotnet-lexikon.de/NET%20Framework%204.6/lex/8058.aspx
[4] http://www.dotnet-lexikon.de/NET%20Core%201.1/lex/8828.aspx
[5] http://www.dotnet-lexikon.de/MicrosoftSQL%20Server%202016/lex/8181.aspx
[6] http://www.dotnet-lexikon.de/WindowsServer%202016/lex/8147.aspx