7

Przeprowadzam praktykę i poproszono mnie o ocenę zmian wydajności nowego Entity Framework 5.0. Osobiście nigdy nie korzystałem z Entity Framework, ani nie mam żadnej dużej bazy danych ani zapytań, aby wykonać odpowiedni test porównawczy.Test porównawczy Entity Framework 5.0

Wykonałem kilka prostych testów ukierunkowanych na .NET 4.5, używając pętli kwerend LINQ, aby spróbować automatycznie uzyskać kompilację Query i zobaczyć jakąś zmianę wydajności, kiedy celuję w .NET 4.0, ale ja W ogóle nie widziałem żadnej zmiany wydajności.

Czy istnieje już jakiś test porównawczy dla Entity Framework, który mógłby pokazać, kiedy nowa wersja Entity Framework ma lepszą wydajność?

Dzięki

+2

Czy tego właśnie szukasz? http://blogs.msdn.com/b/adonet/archive/2012/02/14/sneak-preview-entity-framework-5-0-performance-improvements.aspx – Kye

+0

Ten link pokazuje wyniki jakiegoś niewyjaśnionego testu . Musiałbym być w stanie wykonać test z kodu, aby ocenić, w których scenariuszach występuje faktyczna zmiana wydajności. – ShikiGami

+0

Czy możesz wkleić stare pytanie do pytania? – Kye

Odpowiedz

5

kilka rzeczy:

  • Jeśli chcesz porównać zmiany w wydajności między .NET 4 i .NET 4.5, trzeba mieć dwie maszyny dla że ponieważ .NET 4.5 jest uaktualnienie w miejscu. Zainstalowanie .NET 4.5 na komputerze "usunie" możliwość uruchamiania na starym .NET 4.0 (dziękuję Microsoftowi za ten koszmar). Możesz skierować projekt do .NET 4, ale w środowisku wykonawczym zawsze będziesz uruchamiał .NET 4.5, jeśli jest zainstalowany.
  • Znalezienie ulepszenia wydajności może być dość trudne, ponieważ nie ma listy od rzeczywistych zmian w generacji zapytań, ale dwa obszary, które powinny Cię zainteresować to:
    • Auto skompilowanych zapytań - automatyczna funkcja w EF5 z .NET 4.5. Ta funkcja powinna poprawić późniejszą szybkość wykonywania zapytań - pierwsze wykonanie będzie nadal "wolne", a może nawet "wolniejsze" niż w .NET 4
    • Optymalizacje w zapytaniach o tabelę w hierarchii. Powinno to ogólnie poprawić zapytania ukierunkowane tylko na pojedynczy typ w strukturze dziedziczenia lub wyświetlając tylko pola z jednostki podstawowej. W .NET 4 zawsze prowadziło to do łączenia wszystkich tabel dla elementów pochodnych, nawet jeśli nie były one potrzebne. Nie próbowałem jeszcze tego ulepszenia, więc z przyjemnością przeczytam twoje ustalenia tutaj.
+0

Dziękuję, wciąż myślałem, że kiedy kierowałem projekt do .NET 4.0, faktycznie przebiegł on .NET 4.0. Jak tylko będę miał jakieś konkretne wyniki testu, opublikuję je tutaj. – ShikiGami

+0

Kierowanie działa tylko dla doświadczenia VS (intellisense i kompilacja), ale ponieważ zespoły .NET 4.5 mają ** tę samą wersję ** jak .NET 4.0, są one używane w środowisku wykonawczym. –

+0

Nie rozumiem, dlaczego Microsoft to zrobił. Ale naprawdę dziękuję za wskazówkę, spędziłem prawie cały dzień próbując zrozumieć, dlaczego nie było różnicy przy kolejnych prędkościach wykonywania z .NET 4.0 na LINQ do zapytań jednostek, jeśli automatyczna kompilacja była jedną z głównych zapowiedzianych zmian dla Entity Framework 5 . – ShikiGami

Powiązane problemy