Προγραμματισμός

Βέλτιστες πρακτικές για τη βελτίωση της απόδοσης εφαρμογών στο ASP.Net

Υπάρχουν πολλοί παράγοντες που επηρεάζουν την απόδοση των εφαρμογών Ιστού. Η ουσία για τη βελτίωση της απόδοσης της εφαρμογής είναι η διασφάλιση της δημιουργίας εφαρμογών που θα καταναλώνουν τη μικρότερη ποσότητα μνήμης και απαιτούν τη μικρότερη ποσότητα επεξεργασίας για την παραγωγή της επιθυμητής εξόδου.

Για να το επιτύχετε αυτό, πρέπει να ακολουθήσετε τις προτεινόμενες οδηγίες και τεχνικές που είναι καθοριστικές για τη βελτίωση, τη βελτιστοποίηση και την ενίσχυση της απόδοσης της εφαρμογής ιστού σας. Σε αυτήν την ανάρτηση, θα συζητήσω τις πιο σημαντικές προτάσεις που πρέπει να ακολουθήσετε για να βελτιώσετε την απόδοση της εφαρμογής και την ανταπόκριση εφαρμογών Web που έχουν δημιουργηθεί χρησιμοποιώντας το ASP.Net.

Μείωση του χρόνου φόρτωσης σελίδας

Για να μειώσετε το χρόνο φόρτωσης σελίδων των ιστοσελίδων σας, θα πρέπει να ελαχιστοποιήσετε τα σενάρια και τα αρχεία CSS και να αποφύγετε υπερβολικά μεγάλες εικόνες, περιττές ετικέτες και ένθετους πίνακες. Αποφύγετε τη χρήση στοιχείων ελέγχου διακομιστή (εκτός εάν υπάρχει συγκεκριμένος λόγος να τα χρησιμοποιήσετε) για να ελαχιστοποιήσετε το μέγεθος των ιστοσελίδων σας.

Θα πρέπει επίσης να αποφύγετε περιττές επιστροφές στον διακομιστή Web για να διευκολύνετε ταχύτερες φορτώσεις σελίδων. Μπορείτε να επωφεληθείτε από την ιδιότητα Page.IsPostback για να αποφύγετε την περιττή επεξεργασία διακομιστή σε μετ 'επιστροφής μειώνοντας έτσι την κίνηση του δικτύου. Μια άλλη τεχνική που μπορείτε να ακολουθήσετε είναι η προεγγραφή - μπορείτε να μεταγλωττίσετε τις ιστοσελίδες στην εφαρμογή σας για να μειώσετε το μέγεθος του σετ εργασίας. Μπορείτε επίσης να ορίσετε το χαρακτηριστικό AutoEventWireup σε "false" στο αρχείο machine.config, έτσι ώστε ο χρόνος εκτέλεσης να μην χρειάζεται να αναζητήσει καθέναν από τους χειριστές συμβάντων σε μια ιστοσελίδα.

  

    

      

    

  

Όταν ορίζετε αυτήν την ιδιότητα σε ψευδές, τα συμβάντα σελίδας δεν θα συνδεθούν αυτόματα, εξαλείφοντας έτσι την πιθανότητα να κληθεί το ίδιο συμβάν δύο φορές όταν η σελίδα βρίσκεται σε εκτέλεση.

Πρέπει να ομαδοποιήσετε τα σενάρια και τα css που χρησιμοποιείτε από την εφαρμογή σας όσο το δυνατόν περισσότερο. Επωφεληθείτε από ασύγχρονες κλήσεις από την ιστοσελίδα προς τις μεθόδους του διακομιστή όποτε είναι δυνατόν - αυτό θα βοηθήσει την ιστοσελίδα σας να ανταποκρίνεται.

Διαχείριση κράτους

Θα πρέπει να αποφύγετε τη χρήση του ViewState για να διευκολύνετε ταχύτερες φορτώσεις σελίδων. Να θυμάστε ότι κάθε byte που προστίθεται σε μια ιστοσελίδα ενεργοποιώντας το ViewState θα έχει δύο byte της κίνησης δικτύου - ένα byte σε κάθε κατεύθυνση, δηλαδή, από τον διακομιστή στον πελάτη και το άλλο από τον πελάτη στον διακομιστή. Επίσης, θα πρέπει να αφαιρέσετε την ετικέτα φόρμας runat = "server" από την ιστοσελίδα σας εάν δεν χρειάζεται να χρησιμοποιήσετε το ViewState. Αυτό θα σας εξοικονομήσει περίπου 20 byte του μεγέθους της σελίδας.

Η προσωρινή αποθήκευση είναι μια άλλη τεχνική διαχείρισης κατάστασης που διατίθεται για εσάς - χρησιμοποιήστε τη με σύνεση για να αποθηκεύσετε σχετικά παλιότερα δεδομένα στη μνήμη. Εάν χρειαστεί, μπορείτε να αποθηκεύσετε προσωρινά τις ιστοσελίδες ή το τμήμα των ιστοσελίδων σας. Η αποθήκευση δεδομένων μπορεί να χρησιμοποιηθεί για την ενίσχυση της απόδοσης της εφαρμογής καθώς η ανάγνωση δεδομένων από τη μνήμη προσωρινής μνήμης είναι σχετικά ταχύτερη από την ανάγνωση των ίδιων δεδομένων από ένα αρχείο ή βάση δεδομένων.

Θα πρέπει να βελτιστοποιήσετε τον κωδικό σας για να βεβαιωθείτε ότι χρησιμοποιείτε πόρους (μνήμη και επεξεργαστής, κ.λπ.) με σύνεση - Θα γράψω μια ξεχωριστή ανάρτηση σε αυτό.

Διαχείριση πόρων

Οι σωστές τεχνικές διαχείρισης πόρων, εάν ακολουθηθούν, μπορούν να ενισχύσουν την απόδοση της εφαρμογής σας σε σημαντικό βαθμό. Θα πρέπει να αποκτήσετε πόρους (χειρισμούς αρχείων, συνδέσεις βάσης δεδομένων κ.λπ.) αργά και να τους διαθέσετε νωρίς. Πρέπει να γράψετε τον κωδικό σας με τέτοιο τρόπο ώστε τα αντικείμενα να μην προωθούνται σε υψηλότερες γενιές - να θυμάστε ότι ο συλλέκτης σκουπιδιών λειτουργεί πολύ πιο συχνά στις χαμηλότερες γενιές από ό, τι στις υψηλότερες. Θα πρέπει να χρησιμοποιήσετε το Dispose and Finalize κατάλληλα για να καθαρίσετε τους μη διαχειριζόμενους πόρους που χρησιμοποιείτε στην εφαρμογή σας. Είναι μια καλή πρακτική να τυλίξετε τον κωδικό εντατικού πόρου στην εφαρμογή σας μέσα σε ένα μπλοκ χρήσης. Αυτό θα εξασφαλίσει ότι οι πόροι απορρίπτονται σωστά όταν δεν χρειάζονται πλέον. Σημειώστε ότι η δήλωση "using" για τη συλλογή εκφυλίζεται σε συνδυασμό "try - Akhirnya" και μπορεί να χρησιμοποιηθεί μόνο για εκείνα τα αντικείμενα που εφαρμόζουν τη διεπαφή IDisposable.

Θα πρέπει επίσης να αξιοποιήσετε τις προτεινόμενες στρατηγικές πρόσβασης δεδομένων και να διασφαλίσετε ότι η εφαρμογή σας δεν διατηρεί τις συνδέσεις βάσης δεδομένων για μεγάλο χρονικό διάστημα για να διευκολύνει την καλύτερη συγκέντρωση συνδέσεων. Πρέπει να γράψετε τον κωδικό σας με τέτοιο τρόπο ώστε να χρησιμοποιεί ελάχιστο αριθμό συνδέσεων βάσης δεδομένων. Εάν η εφαρμογή σας διατηρεί τις συνδέσεις βάσης δεδομένων, υπάρχει πιθανότητα το σύνολο συνδέσεων βάσης δεδομένων να έχει εξαντληθεί από τις διαθέσιμες συνδέσεις, επομένως υποβαθμίζει την απόδοση εάν η ζήτηση για συνδέσεις υπερβαίνει ένα συγκεκριμένο όριο. Μπορείτε να επωφεληθείτε από τις αποθηκευμένες διαδικασίες στις περισσότερες περιπτώσεις για να μειώσετε τα γενικά έξοδα επεξεργασίας στο διακομιστή βάσης δεδομένων για συχνές ερωτήσεις - αυτό θα βοηθήσει στη βελτίωση της απόδοσης πρόσβασης δεδομένων σε σημαντικό βαθμό.

$config[zx-auto] not found$config[zx-overlay] not found