7

Je fais un stage, et on m'a demandé d'évaluer les changements de performance pour le nouvel Entity Framework 5.0. Personnellement, je n'ai jamais utilisé Entity Framework, et je n'ai pas non plus de base de données volumineuse ou de requêtes pour effectuer un test de test correct. J'ai effectué quelques tests simples ciblant .NET 4.5 en utilisant des boucles de requêtes LINQ afin d'essayer de compiler automatiquement la requête et de voir une sorte de changement de performance de quand je cible .NET 4.0, mais je Je n'ai pas pu voir de changement de performance du tout. Y a-t-il un type de test de performance déjà effectué pour Entity Framework qui pourrait montrer quand la nouvelle version d'Entity Framework a une meilleure performance?Entity Framework 5.0 Test de référence

Merci

+2

Est-ce ce que vous cherchez? http://blogs.msdn.com/b/adonet/archive/2012/02/14/sneak-preview-entity-framework-5-0-performance-improvements.aspx – Kye

+0

Ce lien montre simplement les résultats d'un test inexpliqué . Je devrais être en mesure d'effectuer le test à partir du code, afin d'évaluer sur quels scénarios il y a un changement de performance réel. – ShikiGami

+0

Pouvez-vous coller l'ancien que vous utilisez dans la question? – Kye

Répondre

5

Peu de choses:

  • Si vous voulez comparer les changements de performance entre .NET 4 et 4,5 .NET, vous devez avoir deux machines pour que, parce que 4.5 .NET est mise à niveau en place. L'installation de .NET 4.5 sur la machine «supprimera» la possibilité de fonctionner sur le vieux .NET 4.0 (merci Microsoft pour ce cauchemar). Vous pouvez cibler le projet sur .NET 4 mais lors de l'exécution, vous serez toujours exécuté sur .NET 4.5 s'il est installé.
  • Trouver l'amélioration des performances peut être assez difficile parce qu'il n'y a pas de liste des changements réels dans la génération de requêtes, mais deux domaines qui devraient vous intéresser: êtes
    • requêtes compilées Auto - fonction automatique à EF5 avec 4,5 .NET. Cette fonctionnalité devrait améliorer la vitesse d'exécution ultérieure des requêtes - la première exécution sera encore "lente" ou peut-être même "plus lente" que dans .NET 4
    • Optimisations dans les requêtes Table-par-hiérarchie. Cela devrait généralement améliorer les requêtes ciblant un type unique dans la structure d'héritage ou la projection de champs seulement à partir de l'entité de base. Dans .NET 4, cela a toujours conduit à joindre toutes les tables pour les entités dérivées, même si elles n'étaient pas nécessaires. Je n'ai pas encore essayé cette amélioration et je serai heureux de lire vos résultats ici.
+0

Merci, je pensais toujours que lorsque j'ai ciblé le projet sur .NET 4.0, il fonctionnait sur .NET 4.0. Dès que j'ai des résultats concrets, je les posterai ici. – ShikiGami

+0

Le ciblage ne fonctionne que pour l'expérience VS (intellisense et build) mais parce que les assemblys .NET 4.5 ont la ** même version ** que .NET 4.0 ils sont utilisés lors de l'exécution. –

+0

Je ne comprends pas pourquoi Microsoft ferait cela. Mais merci beaucoup pour le conseil, j'ai passé presque toute la journée à essayer de comprendre pourquoi il n'y avait pas de différence aux vitesses d'exécution suivantes avec .NET 4.0 sur les requêtes LINQ to Entities si la compilation automatique était l'une des principales modifications annoncées pour Entity Framework 5 . – ShikiGami

Questions connexes