Allgemein Für Administratoren Für Architekten Für Entwickler Für Projektleiter Für Tester News Produkte Publikationen
X
Boris Wehrle
Boris Wehrle ist Senior Software Consultant und zertifizierter Projektleiter bei der AIT.

Boris Wehrle

Entity Framework Debug Performance

Samstag, 16. Juli 2011

Für die Realisierung eines Datenbankzugriffs in einer .NET Framework 4 Anwendung hat sich das Entity Framework etabliert. Es ist den Kinderschuhen entwachsen und bietet eine Reihe von Vereinfachungen:

  • effiziente Datenabfrage mit Hilfe von Linq
  • typsicherer Datenzugriff
  • flexible Generierung von Data Transfer Objects (DTO) incl. Change Tracking über Service Grenzen hinweg
  • Abstraktion des Datenbanktyps
  • hohe Performance

Letzterer Punkt wird, wenn man mit großen Datenmengen arbeitet, häufig falsch eingeschätzt. Die Geschwindigkeit beim Einfügen von Datensätzen unterscheidet sich sehr stark in Abhängigkeit davon ob der Visual Studio Debugger angehängt wurde.

Dies zeigt ein kleiner Performancetest:

   1: using (var context = new  CRMEntities())

   2: {

   3:     for (var i = 0; i < 10000; i++)

   4:     {

   5:         var customer = new Customer()

   6:         {

   7:             Id = Guid.NewGuid(),

   8:             DateOfBirth = RandomDay(),

   9:             FistName = RandomString(10),

  10:             LastName = RandomString(15)

  11:         };

  12:  

  13:         context.Customers.AddObject(customer);

  14:     }

  15:     var stopwatch = new Stopwatch();

  16:     stopwatch.Start();

  17:     context.SaveChanges();

  18:     Trace.WriteLine("Elapsed Milliseconds: " + stopwatch.ElapsedMilliseconds);

  19: }

Ohne Debugger benötigt man für das Einfügen von 10.000 Datensätzen circa 4 Sekunden. Im Gegensatz hierzu benötigt man im Visual Studio Debug Mode fast 80 Sekunden.

Eine Bewertung der Performance einer Anwendung sollte aus diesem Grund immer ohne angehängten Visual Studio Debugger erfolgen.

Verwandte Artikel:

Benötigen Sie Unterstützung bei der Software-Entwicklung und Architektur von .NET basierten Lösungen oder bei Einführung und Anpassung von Visual Studio / Microsoft Test Manager / Team Foundation Server?

Wir stehen Ihnen unter info(at)aitgmbh.de gerne zur Verfügung.

Tags:

Hinterlasse eine Antwort