EF6 vs EF Core

0

Robie proste zapytania Linq na końcu konwerteruje do toLista jakieś np dwa złączenia i sprawdzam średni czas trwania takiego zapytania i zauważyłem , że np dla 1mln wpisów czasy EF CORE są o 6x dłuższe niz w przypadku starego EF6. Zapewne błąd w pomiarach stanowisko testowe itd. No ale żeby aż 6x wolniej się pokazywał EF CORE od EF6?
W ogóle to wydaję mi się, że mimo wszystko powinien być szybszy Core od swojego poprzednika ;p (Wszystko na windowsie sprawdzane)

Jakby ktoś miał jakiś fajny poradnik do takich testów wydajności to może załączyć w odpowiedzi :)

1

Zerknij na to jakie są generowane zapytania i ile.

EF Core czasem rozbija jedno zapytanie na kilka.

0
WeiXiao napisał(a):

Zerknij na to jakie są generowane zapytania i ile.

EF Core czasem rozbija jedno zapytanie na kilka.

Sprawdziłem i są takie same po jednym inner joinie ;p (oczywiście ta sama baza)

0

To pokaż te zapytania. A najlepiej całość na gitgubie.

1

Może jakiś tracking encji włączony?

0

No i co z tego, że tylko pobierasz? Skoro ORM musi je śledzić, to zajmuje mu to zasoby, co może powodować wolniejszą pracę całości.
To taka hipoteza tylko, no bo zakładam, że skoro zapytania masz takie same, to i na serwerze bazy danych wykonują się tyle samo czasu, więc wina musi być po stronie softu.

0
somekind napisał(a):

No i co z tego, że tylko pobierasz? Skoro ORM musi je śledzić, to zajmuje mu to zasoby, co może powodować wolniejszą pracę całości.
To taka hipoteza tylko, no bo zakładam, że skoro zapytania masz takie same, to i na serwerze bazy danych wykonują się tyle samo czasu, więc wina musi być po stronie softu.

Racja po wyłączeniu śledzenia zacząłem dostawać podobne wyniki, nawet wyszło że Core lekko szybszy.
I tak zastanawiające dlaczego w takim razie tracking core zajmuję tak długo?

0

I tak zastanawiające dlaczego w takim razie tracking core zajmuję tak długo?

chyba przez to :P

dla 1mln wpisów

0
WeiXiao napisał(a):

I tak zastanawiające dlaczego w takim razie tracking core zajmuję tak długo?

chyba przez to :P

dla 1mln wpisów

No tak ale dla EF6 zapytanie z trackingiem wyszło mi 6x szybciej :p

1

Widocznie tracking w EF6 jest zepsuty, więc po prostu po pewnym czasie przestaje działać i zżerać zasoby. W Core działa do końca, więc ciągle negatywnie wpływa na wydajność. :P

0

Wyłączyłem to śledzenia za pomocą wywołania metody AsNoTracking przed konwersją do toList(), ale teraz zobaczyłem że dla 1 mln wpisów EF Core mieli to z 40 sekund, natomaist ef6 około 4 sekund. Jak jeszcze można wyłączyć tracking albo jak ustawić, by dostać w miare "realne" pomiary?

1

A gdyby tak zobaczyć co tam się w ogóle dzieje przy pomocy dotMemory albo dotTrace?

0

Żeby dostać realne pomiary trzeba zrobić test na realnych danych. Czy w rzeczywistym przypadku potrzebujesz wyciągać milion rekordów? Dla mniejszych ilości wyniki mogą być odmienne :)

0

Podejrzałem diagnostic toolem break na początku metodki (zwraca milion wpisow) potem na końcu i takie coś otrzymałem:

CPU USAGE:
MVC - process iisexpress.exe (~14 procesow) dla External call System.Ling.Enumerable 40 procent, controller 40 procent metodka w serwisie 40 procent
CORE - proces dotnet exe CPU USAGE (~~ 50 + procesów) z czego wiecej procesów i odpalonych i po 90+ procent.

Memory usage:
COUNT Size(Bytes) Inclusive Size (Bytes)
MVC - App.ViewModels.MyViewModel.MyViewModel: 999 999 | 79 999 920 | 180 500 948
CORE - App2.ViewModels.ViewModels.ViewModels: 1 000 000 | 120 000 000 | 73 208 864

Jak można zobaczyć zużycie pamięci w Core wyszło mi 120 mln bajtów, czy to może być powód dla którego takie niemiarodajne wyniki dostaje?

0

Jaki wpływ ma IIS na aplikacje webowe na .NET Frameworkowe?

0
WeiXiao napisał(a):

Jaki wpływ ma IIS na aplikacje webowe na .NET Frameworkowe?

No wplyw na pewno ma na średni czas odpowiedzi poszczególnych żądań na stronie.
Podałem po prostu informacje, które wypluło mi diagnostić tool z nadzieją, że znajdzie się to coś co powoduje taki kontrast w badaniu ;/

0

wrzuć kod, pewnie nie jedna osoba z ciekawości by na niego spojrzała spod profilera w celu znalezienie przyczyny, a tak pozostało gdybanie bez kodu

0
neves napisał(a):

wrzuć kod, pewnie nie jedna osoba z ciekawości by na niego spojrzała spod profilera w celu znalezienie przyczyny, a tak pozostało gdybanie bez kodu

Udostępniłbym ale niestety nie mogę, bo jest to potrzebne do badania w pracy magisterskiej ;/

1 użytkowników online, w tym zalogowanych: 0, gości: 1