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

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

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

[Копіювати посилання]
Опубліковано 2022-3-31 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
Опубліковано 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 |
Заповніть масиви байтів криптографічними випадковими послідовностями. (де System.Security.Cryptography.RNGCryptoServiceProvider застарілий)


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

Mail To:help@itsvse.com