Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 24247|Відповідь: 5

[Джерело] [Справжній бій]. NET 6 Random генерує тест випадкових чисел

[Копіювати посилання]
Опубліковано 31.03.2022 16:20:26 | | | |
Нещодавно Microsoft опублікувала блог про покращення продуктивності .NET 6, де згадала багато цікавих речей, серед яких був Random.Shared.

Це статична властивість лише для читання, і об'єкт, безпечний для потоків, може допомогти нам спростити використання випадкових об'єктів.

Випадкове. СпільнеЗабезпечує безпечний для потоків екземпляр Random, який можна використовувати з будь-якого потоку одночасно。 Посилання:Вхід за гіперпосиланням видно.

По-перше, нам потрібно знати, що Random не є безпечним для потоків, тому якщо ми хочемо використовувати Random у багатопотоковості, зазвичайПотрібно враховувати безпеку різьби。 Оскільки він не є потоковим, ми можемо створювати один, коли користуємося, і новий щоразу, але в цьому випадку код недостатньо лаконічний, а з іншого боку може створювати більше випадкових об'єктів, а також є додаткові витрати на продуктивність.

Давайте порівняємо і протестуємо це за допомогою BenchmarkDotNet, і код виглядає так:
.NET/C# використовує BenchmarkDotNet для тестування продуктивності коду
https://www.itsvse.com/thread-9576-1-1.html
Старий метод полягає в тому, що я завжди створюю новий випадковий об'єкт для генерації випадкового числа, а новий метод викликає останній метод Random.Shared, наданий у .NET 6. Тестові рендери такі:



Ми дивимося на середній середній час виконання з новими функціями10-кратний прискорення

(Кінець)






Попередній:ASP.NET Core (дванадцять) фронтенд JS, пакетування CSS та стиснення
Наступний:ASP.NET Core (XIII), щоб визначити, чи є це запитом Ajax
Опубліковано 02.04.2022 09:15:51 |
Час знову вчитися
Опубліковано 14.04.2022 10:42:00 |
Приходь і вчися, повіє, дякую, що поділилася.
Опубліковано 20.06.2022 17:01:32 |
У резервуар! Дякую, що поділилися
 Орендодавець| Опубліковано 25.11.2023 21:01:04 |
Використовуйте метод GUID для випадкового вибору одного з колекції (не використовуйте його для запитів до бази даних, інакше буде запитано повну таблицю)

 Орендодавець| Опубліковано 06.04.2025 09:33:00 |
Заповніть масиви байтів криптографічними випадковими послідовностями. (де System.Security.Cryptography.RNGCryptoServiceProvider застарілий)


або
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com