7

Ich mache ein Praktikum, und ich wurde gebeten, die Leistungsänderungen für das neue Entity Framework 5.0 zu bewerten. Ich habe persönlich nie das Entity Framework verwendet, noch habe ich irgendeine große Datenbank oder Abfragen, um einen korrekten Benchmark-Test durchzuführen.Entity Framework 5.0 Benchmark Test

Ich habe einige einfache Tests durchgeführt, die auf .NET 4.5 mit for loops von LINQ-Abfragen ausgerichtet sind, um zu versuchen, die Abfrage automatisch kompiliert zu bekommen und eine Art Leistungsänderung von, wenn ich auf .NET 4.0, aber ich Ich habe überhaupt keine Leistungsänderung feststellen können.

Gibt es einen bereits durchgeführten Benchmark-Test für Entity Framework, der zeigen könnte, wann die neue Version von Entity Framework eine bessere Leistung hat?

Dank

+2

Suchen Sie das? http://blogs.msdn.com/b/adonet/archive/2012/02/14/sneak-preview-entity-framework-5-0-performance-improvements.aspx – Kye

+0

Dieser Link zeigt nur die Ergebnisse einiger unerklärter Test . Ich müsste in der Lage sein, den Test vom Code durchzuführen, um zu bewerten, in welchen Szenarien es tatsächliche Leistungsänderung gibt. – ShikiGami

+0

Können Sie das alte, das Sie verwenden, in die Frage einfügen? – Kye

Antwort

5

Nur wenige Dinge:

  • Wenn Sie Leistungsänderungen zwischen .NET 4 vergleichen möchten und .NET 4.5 zwei Maschinen dafür haben muss, weil .NET 4.5-Upgrade-Ort ist. Die Installation von .NET 4.5 auf dem Computer wird die Möglichkeit "entfernen", auf altem .NET 4.0 zu laufen (danke Microsoft für diesen Albtraum). Sie können das Projekt auf .NET 4 ausrichten, aber zur Laufzeit werden Sie immer auf .NET 4.5 ausgeführt, wenn es installiert ist.
  • Finding Leistungsverbesserungen kann ziemlich schwierig sein, weil es keine Liste der realen Veränderungen in der Abfrage Generation ist aber zwei Bereiche, die interessieren, sollten Sie sind:
    • Auto kompilierten Abfragen - automatische Funktion in EF5 mit .NET 4.5. Diese Funktion sollte die nachfolgende Ausführungsgeschwindigkeit von Abfragen verbessern - die erste Ausführung wird immer noch "langsam" oder vielleicht sogar "langsamer" als in .NET Optimieren in Abfragen pro Tabelle pro Hierarchie sein. Dies sollte im Allgemeinen Abfragen verbessern, die nur auf einen einzigen Typ in der Vererbungsstruktur zielen oder nur Felder von der Basis-Entität projizieren. In .NET 4 führte dies immer dazu, alle Tabellen für abgeleitete Entitäten zu verbinden, auch wenn sie nicht benötigt wurden. Ich habe diese Verbesserung noch nicht probiert, daher würde ich mich freuen, Ihre Ergebnisse hier zu lesen.
+0

Danke, ich dachte immer noch, dass wenn ich das Projekt auf .NET 4.0 ausgerichtet habe, es tatsächlich über .NET 4.0 lief. Sobald ich konkrete Testergebnisse habe, werde ich sie hier veröffentlichen. – ShikiGami

+0

Das Targeting funktioniert nur für VS-Erfahrung (Intellisense und Build), aber weil .NET 4.5-Assemblies die gleiche Version ** wie .NET 4.0 haben, werden sie zur Laufzeit verwendet. –

+0

Ich verstehe nicht, warum Microsoft das tun würde. Aber wirklich vielen Dank für den Tipp, ich verbrachte fast den ganzen Tag damit zu verstehen, warum es keinen Unterschied bei den nachfolgenden Ausführungsgeschwindigkeiten mit .NET 4.0 bei LINQ to Entities-Abfragen gab, wenn die automatische Kompilierung eine der wichtigsten angekündigten Änderungen für Entity Framework 5 war . – ShikiGami

Verwandte Themen