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

Άποψη: 3616|Απάντηση: 2

[Πηγή] Το .NET/C# χρησιμοποιεί το Span για να χειριστεί συμβολοσειρές με υψηλή απόδοση

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 25/5/2023 8:13:18 μ.μ. | | | |
απαιτήσεις: Πρόσφατα,<T> εξετάζοντας γνώσεις όπως το Span και <T>η Memory, πιστεύω ότι υπάρχουν πολλά πλεονεκτήματα στη χρήση τέτοιων αντικειμένων, όπως: άμεση πρόσβαση στη μνήμη (και πολύ ασφαλής), μείωση της περιττής εκχώρησης μνήμης (ανάλογα με τη σκηνή, π.χ. υποσυμβολοσειρά υποκλοπή μετατροπής συμβολοσειράς), τροποποίηση τιμών στη μνήμη και ακόμα μάθηση, όχι αυτή η εις βάθος κατανόηση.

Το System.Span<T> είναι ένας νέος τύπος τιμής στον πυρήνα .NET. Υποστηρίζει μια αναπαράσταση μιας συνεχόμενης περιοχής αυθαίρετης μνήμης, είτε αυτή η μνήμη σχετίζεται με ένα διαχειριζόμενο αντικείμενο, που παρέχεται από εγγενή κώδικα μέσω διαλειτουργικότητας, είτε βρίσκεται στη στοίβα. Αυτό το κάνει ενώ εξακολουθεί να παρέχει ασφαλή πρόσβαση, με χαρακτηριστικά απόδοσης παρόμοια με τους πίνακες. Κατά τη χρήση, το Span διασφαλίζει την ασφάλεια της μνήμης και των δεδομένων με ελάχιστα έως καθόλου γενικά έξοδα.

Για παράδειγμα, εάν χρησιμοποιήσουμε το Substring για να μετατρέψουμε μια συμβολοσειρά σε τύπο int, guid, long κ.λπ., δεν θα χρησιμοποιούμε πλέον το περιεχόμενο συμβολοσειράς που έχει υποκλαπεί, αλλά η κλήση του Substring για την επιστροφή μιας νέας συμβολοσειράς θα ζητήσει νέο χώρο στη μνήμη.

Αρχικά, εισάγεται το εργαλείο συγκριτικής αξιολόγησης BenchmarkDotNet, ως εξής:

Το .NET/C# χρησιμοποιεί το BenchmarkDotNet για να ελέγξει την απόδοση του κώδικα
https://www.itsvse.com/thread-9576-1-1.html
Ο κωδικός δοκιμής έχει ως εξής:

Τα αποτελέσματα έχουν ως εξής:



Αναφορά:

Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή.





Προηγούμενος:.NET/C# σύνταξη goto δήλωση
Επόμενος:Το Docker δημιουργεί διαδικτυακούς χάρτες μυαλού με βάση draw.io
Δημοσιεύτηκε στις 26/5/2023 2:11:02 μ.μ. |
Ελάτε να μάθετε...
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 1/9/2023 9:59:03 μ.μ. |
Εάν ναιΠλαίσιο .NETμπορεί να γίνει αναφοράSystem.Memory.dllΧρήση ReadOnlySpan, AsSpan
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com