Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 15688|Odpowiedź: 0

[ASP.NET] 8 sposobów na poprawę wydajności ASP.NET Web API

[Skopiuj link]
Opublikowano 11.01.2016 14:37:43 | | | |
ASP.NET Web API to świetna technologia. Pisanie API webowych jest tak proste, że wielu programistów nie poświęca czasu na strukturyzację swoich aplikacji, by uzyskać dobrą wydajność wykonawczą.
W tym artykule omówię 8 technik poprawy wydajności ASP.NET API webowych.
1) Użyj najszybszego narzędzia do serializacji JSON
Serializacja JSON ma kluczowy wpływ na wydajność całego ASP.NET Web API. W jednym z moich projektów przeszedłem z JSON.NET serializatora na ServiceStack.Text na półtora roku.
Zmierzyłem, że wydajność Web API poprawiła się o około 20%. Gorąco polecam wypróbować to narzędzie do serializacji. Oto kilka najnowszych danych porównawczych dotyczących wydajności popularnych narzędzi do serializacji.
SerializerPerformanceGraf
Źródło: theburningmonk
Aktualizacja: Wygląda na to, że StackOverflow używa Jil, swojego dotychczas deklarowanego narzędzia do serializacji JSON. Dane testowe można znaleźć na ich stronie GitHub Jil serializer.
2) Ręczna serializacja JSON z DataReader
Stosowałem to podejście w moich projektach i uzyskałem korzyści z wydajności.
Możesz ręcznie tworzyć ciągi JSON z DataReadera i unikać niepotrzebnego tworzenia obiektów, dzięki czemu nie musisz pobierać wartości z DataReadera i zapisywać do obiektów, a następnie pobierać wartości z tych obiektów i używać JSON Serializer do generowania JSON.
Użyj StringBuildera, aby wygenerować JSON i zwrócić StringContent na końcu jako treść odpowiedzi w WebAPI.

Więcej sposobów na to znajdziesz na blogu Ricka Strahla
3) Używanie innych formatów protokołów (bufor protokołu, pakiet wiadomości) tak często, jak to możliwe
Jeśli możesz użyć innych formatów wiadomości w swoim projekcie, takich jak Protocol Buffers czy MessagePacks, zamiast używać JSON.
Uzyskasz ogromną przewagę wydajnościową, nie tylko dlatego, że protokołu są bardzo szybkie w serializacji, ale także dlatego, że są formatowane szybciej niż JSON w zwróconych wynikach.
4) Implementacja kompresji
Użyj GZIP lub Deflate w swoim ASP.NET Web API.
Kompresja to prosty i skuteczny sposób na zmniejszenie rozmiaru i responsywności pakietów odpowiedzi.
To bardzo potrzebna funkcja, możesz przeczytać więcej artykułów o kompresji na moim blogu ASP.NET Web API GZip kompresji ActionFilter z 8 linijkami kodu.
5) Korzystanie z buforowania
Wykorzystanie buforowania wyjściowego w metodzie Web API jest bardzo ważne. Na przykład, jeśli duża liczba użytkowników korzysta z treści odpowiedzi, zmienia się to tylko raz dziennie.
Jeśli chcesz wdrożyć ręczne buforowanie, na przykład buforowanie haseł użytkowników w pamięci, zobacz mój wpis na blogu Prosty sposób implementacji buforowania w ASP.NET Web API.
6) Używaj typowych ADO.NET, kiedy tylko to możliwe
Ręcznie zapisane ADO.NET to nadal najszybszy sposób na uzyskanie wartości z bazy danych. Jeśli wydajność twoich webowych API jest dla ciebie naprawdę ważna, to nie używaj ORM.
Można zobaczyć porównania wydajności między najpopularniejszymi ORM-ami.
ORMMapper


Dapper i ręcznie pisany kod pobierania są szybkie, a rzeczywiście, wszystkie ORM-y są wolniejsze niż te trzy.
LLBLGen z pamięcią podręczną zbioru wyników jest szybki, ale musi ponownie powtórzyć zbiór wyników i ponownie instancjonować obiekt w pamięci.
7) Implementacja podejścia asynchronicznego w Web API
Korzystanie z asynchronicznej usługi Web API znacząco zwiększa liczbę żądań HTTP przetwarzanych przez Web API.
Implementacja jest prosta, wystarczy użyć asynchronicznego słowa kluczowego i zmienić typ wartości zwrotnej metody na Task.

8) Zwraca wiele zbiorów wyników oraz kombinacji zbiorów
Zmniejszenie liczby transferów jest korzystne nie tylko dla wielu baz danych, ale także dla Web API, które pozwalają wykorzystać potencjał zestawów wyników.
Oznacza to, że możesz wyodrębnić wiele zestawów wyników z DataReader, zobacz poniższy kod demonstracyjny:

Możesz zwrócić wiele obiektów w jednej odpowiedzi z Web API, spróbuj połączyć zwrócone obiekty i zwróć następujące obiekty:

To zmniejszy liczbę żądań HTTP do Twojego WEB API.
Dziękuję za przeczytanie tego artykułu.




Poprzedni:SyntaxError: Missing parentheses in call to print
Następny:VSFTPD dodaje nowych użytkowników
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com