Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 15688|Απάντηση: 0

[ASP.NET] 8 τρόποι για να βελτιώσετε την απόδοση του ASP.NET Web API σας

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 11/1/2016 2:37:43 μ.μ. | | | |
ASP.NET Web API είναι μια εξαιρετική τεχνολογία. Η σύνταξη Web API είναι τόσο εύκολη που πολλοί προγραμματιστές δεν ξοδεύουν χρόνο για να δομήσουν τις εφαρμογές τους για να έχουν καλή απόδοση εκτέλεσης.
Σε αυτό το άρθρο, θα καλύψω 8 τεχνικές για τη βελτίωση της απόδοσης των ASP.NET Web API.
1) Χρησιμοποιήστε το ταχύτερο εργαλείο σειριοποίησης JSON
Η σειριοποίηση του JSON έχει κρίσιμο αντίκτυπο στην απόδοση ολόκληρου του ASP.NET Web API. Σε ένα από τα έργα μου, άλλαξα από το JSON.NET serializer στο ServiceStack.Text για ενάμιση χρόνο.
Έχω μετρήσει ότι η απόδοση του Web API έχει βελτιωθεί κατά περίπου 20%. Σας συνιστώ ανεπιφύλακτα να δοκιμάσετε αυτό το εργαλείο σειριοποίησης. Ακολουθούν ορισμένα πρόσφατα δεδομένα σύγκρισης σχετικά με την απόδοση δημοφιλών εργαλείων σειριοποίησης.
SerializerPerformanceGraf
Πηγή: theburningmonk
Ενημέρωση: Φαίνεται ότι φαίνεται ότι το StackOverflow χρησιμοποιεί το Jil, το εργαλείο σειριοποίησης JSON που ισχυρίζονται μέχρι σήμερα. Μπορείτε να βρείτε δεδομένα δοκιμής στη σελίδα τους στο GitHub Jil serializer.
2) Μη αυτόματη σειριοποίηση JSON από το DataReader
Έχω χρησιμοποιήσει αυτήν την προσέγγιση στα έργα μου και έχω λάβει οφέλη απόδοσης.
Μπορείτε να δημιουργήσετε με μη αυτόματο τρόπο συμβολοσειρές JSON από το DataReader και να αποφύγετε την περιττή δημιουργία αντικειμένων, έτσι ώστε να μην χρειάζεται να λαμβάνετε τιμές από το DataReader και να γράφετε σε αντικείμενα και, στη συνέχεια, να λαμβάνετε τιμές από αυτά τα αντικείμενα και να χρησιμοποιείτε το JSON Serializer για να δημιουργήσετε JSON.
Χρησιμοποιήστε το StringBuilder για να δημιουργήσετε JSON και να επιστρέψετε το StringContent στο τέλος ως το περιεχόμενο της απόκρισης στο WebAPI.

Μπορείτε να δείτε περισσότερους τρόπους για να το κάνετε αυτό στο blog του Rick Strahl
3) Χρησιμοποιήστε άλλες μορφές πρωτοκόλλου (buffer πρωτοκόλλου, πακέτο μηνυμάτων) όσο το δυνατόν περισσότερο
Εάν μπορείτε να χρησιμοποιήσετε άλλες μορφές μηνυμάτων στο έργο σας, όπως Protocol Buffers ή MessagePacks, αντί να χρησιμοποιήσετε JSON.
Θα έχετε ένα τεράστιο πλεονέκτημα απόδοσης, όχι μόνο επειδή τα Protocol Buffers είναι πολύ γρήγορα στη σειριοποίηση, αλλά και επειδή μορφοποιούνται πιο γρήγορα από το JSON στα αποτελέσματα που επιστρέφονται.
4) Εφαρμογή συμπίεσης
Χρησιμοποιήστε το GZIP ή το Deflate στο ASP.NET Web API σας.
Η συμπίεση είναι ένας απλός και αποτελεσματικός τρόπος για να μειώσετε το μέγεθος και την απόκριση των πακέτων απόκρισης.
Αυτό είναι ένα πολύ απαραίτητο χαρακτηριστικό, μπορείτε να δείτε περισσότερα άρθρα σχετικά με τη συμπίεση στο ιστολόγιό μου ASP.NET συμπίεση Web API GZip ActionFilter με 8 γραμμές κώδικα.
5) Χρησιμοποιήστε προσωρινή αποθήκευση
Η χρήση προσωρινής αποθήκευσης εξόδου στη μέθοδο Web API είναι βαθιά. Για παράδειγμα, εάν ένας μεγάλος αριθμός χρηστών έχει πρόσβαση σε περιεχόμενο απόκρισης που αλλάζει μόνο μία φορά την ημέρα.
Εάν θέλετε να εφαρμόσετε μη αυτόματη προσωρινή αποθήκευση, όπως προσωρινή αποθήκευση κωδικών πρόσβασης χρηστών στη μνήμη, ανατρέξτε στην ανάρτησή μου στο ιστολόγιό μου Απλός τρόπος για να εφαρμόσετε την προσωρινή αποθήκευση στο API Web ASP.NET.
6) Χρησιμοποιήστε τυπικές ADO.NET όποτε είναι δυνατόν
Η χειροκίνητη ADO.NET εξακολουθεί να είναι ο πιο γρήγορος τρόπος για να λάβετε τιμές από τη βάση δεδομένων. Εάν η απόδοση των web API σας είναι πολύ σημαντική για εσάς, τότε μην χρησιμοποιείτε ORM.
Μπορείτε να δείτε συγκρίσεις απόδοσης μεταξύ των πιο δημοφιλών ORM.
ORMMapper


Ο κομψός και ο χειρόγραφος κώδικας ανάκτησης είναι γρήγοροι και σίγουρα, όλα τα ORM είναι πιο αργά από τα τρία.
Το LLBLGen με κρυφή μνήμη συνόλου αποτελεσμάτων είναι γρήγορο, αλλά πρέπει να επαναλάβει το σύνολο αποτελεσμάτων και να δημιουργήσει ξανά το αντικείμενο στη μνήμη.
7) Εφαρμόστε μια ασύγχρονη προσέγγιση στο Web API
Η χρήση μιας ασύγχρονης υπηρεσίας Web API αυξάνει δραματικά τον αριθμό των αιτημάτων HTTP που επεξεργάζονται τα Web API.
Η υλοποίηση είναι απλή, απλώς χρησιμοποιήστε την ασύγχρονη λέξη-κλειδί και αλλάξτε τον τύπο επιστρεφόμενης τιμής της μεθόδου σας σε Εργασία.

8) Επιστρέφει πολλαπλά σύνολα αποτελεσμάτων και συνδυασμούς συνόλων
Η μείωση του αριθμού των μεταφορών δεν είναι επωφελής μόνο για πολλαπλές βάσεις δεδομένων, αλλά και για Web API, γεγονός που σας επιτρέπει να χρησιμοποιήσετε τη δύναμη των συνόλων αποτελεσμάτων.
Αυτό σημαίνει ότι μπορείτε να εξαγάγετε πολλά σύνολα αποτελεσμάτων από το DataReader, δείτε τον ακόλουθο κώδικα επίδειξης:

Μπορείτε να επιστρέψετε πολλά αντικείμενα σε μία μόνο απόκριση από ένα Web API, δοκιμάστε να συνδυάσετε τα αντικείμενα που επιστράφηκαν και να επιστρέψετε τα ακόλουθα αντικείμενα:

Αυτό θα μειώσει τα αιτήματα HTTP στο WEB API σας.
Σας ευχαριστούμε που διαβάσατε αυτό το άρθρο.




Προηγούμενος:SyntaxError: Missing parentheses in call to print
Επόμενος:vsftpd για προσθήκη νέων χρηστών
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com