πρόλογος
. Έκδοση Net8, σε σύγκριση με. Το Net7 έχει αλλάξει πολύ. Σε αυτό το άρθρο, ας ρίξουμε μια ματιά σε μερικούς από τους τύπους αλλαγών απόδοσης, επίσημα προτεινόμενους νέους τύπους που στοχεύουν στη βελτίωση της απόδοσης της εφαρμογής.
Περιτύλιγμα
1.Σύστημα.Συλλογές.Κατεψυγμένα
Οι χώροι ονομάτων περιλαμβάνουν τους τύπους συλλογής FrozenDictionary< TKey, TValue> και FrozenSet. Μόλις δημιουργηθεί μια συλλογή, αυτοί οι τύποι δεν επιτρέπουν αλλαγές σε κλειδιά και τιμές. Αυτή η απαίτηση επιτρέπει ταχύτερες λειτουργίες ανάγνωσης (π.χ. TryGetValue()). Αυτοί οι τύποι είναι ιδιαίτερα χρήσιμοι για συλλογές που συμπληρώνονται κατά την πρώτη χρήση και στη συνέχεια διατηρούνται για μακροπρόθεσμη υπηρεσία, όπως:
2.System.Buffers.IndexOfAnyValues
Ο τύπος προορίζεται να περάσει στη μέθοδο εύρεσης της πρώτης αντιστοίχισης οποιασδήποτε τιμής στη συλλογή που πέρασε. Για παράδειγμα, το String.IndexOfAny(Char[]) αναζητά την πρώτη αντιστοίχιση οποιουδήποτε χαρακτήρα στον καθορισμένο πίνακα στη συμβολοσειρά που τον καλεί. Το NET 8 προσθέτει νέες υπερφορτώσεις μεθόδων, όπως String.IndexOfAny και MemoryExtensions.IndexOfAny που δέχονται παρουσίες νέου τύπου. Όταν δημιουργείτε μια παρουσία του System.Buffers.IndexOfAnyValues, όλα τα δεδομένα που απαιτούνται για τη βελτιστοποίηση των επόμενων αναζητήσεων θα προκύψουν εκείνη τη στιγμή, πράγμα που σημαίνει ότι η εργασία γίνεται εκ των προτέρων.
3.System.Text.CompositeFormat
Οι τύποι μπορούν να χρησιμοποιηθούν για τη βελτιστοποίηση συμβολοσειρών μορφοποίησης που είναι άγνωστες κατά το χρόνο μεταγλώττισης (π.χ. οι συμβολοσειρές μορφοποίησης φορτώνονται από αρχεία πόρων). Χρειάζεται λίγος επιπλέον χρόνος εκ των προτέρων για να κάνετε πράγματα όπως η ανάλυση συμβολοσειρών, αλλά αυτό εξοικονομεί εργασία που γίνεται κάθε φορά που το χρησιμοποιείτε.
4.System.Buffers.IndexOfAnyValues
Ο τύπος προορίζεται να περάσει στη μέθοδο εύρεσης της πρώτης αντιστοίχισης οποιασδήποτε τιμής στη συλλογή που πέρασε. Για παράδειγμα, το String.IndexOfAny(Char[]) αναζητά την πρώτη αντιστοίχιση οποιουδήποτε χαρακτήρα στον καθορισμένο πίνακα στη συμβολοσειρά που τον καλεί. Το NET 8 προσθέτει νέες υπερφορτώσεις μεθόδων, όπως String.IndexOfAny και MemoryExtensions.IndexOfAny που δέχονται παρουσίες νέου τύπου. Όταν δημιουργείτε μια παρουσία του System.Buffers.IndexOfAnyValues, όλα τα δεδομένα που απαιτούνται για τη βελτιστοποίηση των επόμενων αναζητήσεων θα προκύψουν εκείνη τη στιγμή, πράγμα που σημαίνει ότι η εργασία γίνεται εκ των προτέρων.
5.System.Text.CompositeFormat
Οι τύποι μπορούν να χρησιμοποιηθούν για τη βελτιστοποίηση συμβολοσειρών μορφοποίησης που είναι άγνωστες κατά το χρόνο μεταγλώττισης (π.χ. οι συμβολοσειρές μορφοποίησης φορτώνονται από αρχεία πόρων). Χρειάζεται λίγος επιπλέον χρόνος εκ των προτέρων για να κάνετε πράγματα όπως η ανάλυση συμβολοσειρών, αλλά αυτό εξοικονομεί εργασία που γίνεται κάθε φορά που το χρησιμοποιείτε.
6. System.Numerics και System.Runtime.Intrinsics
Βελτιώσεις στους χώρους ονομάτων System.Numerics και System.Runtime.Intrinsics. Τα Vector256, Matrix3x2 και Matrix4x4 βελτιώνουν την επιτάχυνση υλικού στο .NET 8. Για παράδειγμα, το Vector256 έχει υλοποιήσει εκ νέου το 2xVector128 όπου είναι δυνατόν. Τα εσωτερικά στοιχεία υλικού τώρα σχολιάζουν χρησιμοποιώντας την ιδιότητα ConstExpected. Αυτό διασφαλίζει ότι οι χρήστες γνωρίζουν πότε το υποκείμενο υλικό χρειάζεται σταθερές και πότε οι εξαιρετικές τιμές μπορεί να βλάψουν κατά λάθος την απόδοση.
Αναφορά:Η σύνδεση με υπερσύνδεσμο είναι ορατή. Αρχικός:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
|