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

Άποψη: 23489|Απάντηση: 5

[Πηγή] [Πραγματική μάχη]. Το NET 6 Random δημιουργεί μια δοκιμή τυχαίων αριθμών

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2022-3-31 16:20:26 | | | |
Πρόσφατα η Microsoft δημοσίευσε μια ανάρτηση ιστολογίου σχετικά με τις βελτιώσεις απόδοσης του .NET 6, η οποία ανέφερε πολλά ενδιαφέροντα πράγματα, ένα από τα οποία ήταν το Random.Shared.

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

Τυχαία.ΚοινόχρηστοΠαρέχει μια ασφαλή για νήματα παρουσία του Random που μπορεί να χρησιμοποιηθεί από οποιοδήποτε νήμα ταυτόχρονα。 Αναφορά:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

Πρώτα απ 'όλα, πρέπει να γνωρίζουμε ότι το Random δεν είναι ασφαλές για νήματα, οπότε αν θέλουμε να χρησιμοποιήσουμε το Random σε multithreading, συνήθωςΠρέπει να ληφθεί υπόψη η ασφάλεια του νήματος。 Δεδομένου ότι δεν είναι ασφαλές για νήματα, μπορούμε να δημιουργήσουμε ένα όταν το χρησιμοποιούμε και νέο κάθε φορά, αλλά σε αυτήν την περίπτωση, ο κώδικας δεν είναι αρκετά συνοπτικός και, από την άλλη πλευρά, μπορεί να δημιουργήσει περισσότερα τυχαία αντικείμενα και υπάρχει επίσης επιβάρυνση απόδοσης.

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



Εξετάζουμε τον μέσο χρόνο εκτέλεσης με τις νέες δυνατότητες10x ενίσχυση

(Τέλος)






Προηγούμενος:ASP.NET Core (δώδεκα) front-end JS, ομαδοποίηση CSS και συμπίεση
Επόμενος:ASP.NET Core (XIII) για να προσδιορίσετε εάν πρόκειται για αίτημα Ajax ή όχι
Δημοσιεύτηκε στις 2022-4-2 09:15:51 |
Ήρθε η ώρα να μάθετε ξανά
Δημοσιεύτηκε στις 2022-4-14 10:42:00 |
Έλα να μάθεις,, σε ευχαριστώ που το μοιράστηκες.
Δημοσιεύτηκε στις 2022-6-20 17:01:32 |
Υποστηρικτής! Ευχαριστώ που το μοιράστηκες
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2023-11-25 21:01:04 |
Χρησιμοποιήστε τη μέθοδο GUID για να επιλέξετε τυχαία ένα από τη συλλογή (μην το χρησιμοποιήσετε για ερώτημα βάσης δεδομένων, διαφορετικά θα ζητηθεί ο πλήρης πίνακας)

 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2025-4-6 09:33:00 |
Συμπληρώστε πίνακες byte με κρυπτογραφικές ακολουθίες τυχαίων τιμών. (όπου το System.Security.Cryptography.RNGCryptoServiceProvider έχει καταργηθεί)


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

Mail To:help@itsvse.com