|
|
Опубліковано 2022-3-31 16:20:26
|
|
|
|

Нещодавно Microsoft опублікувала блог про покращення продуктивності .NET 6, де згадала багато цікавих речей, серед яких був Random.Shared.
Це статична властивість лише для читання, і об'єкт, безпечний для потоків, може допомогти нам спростити використання випадкових об'єктів.
Випадкове. СпільнеЗабезпечує безпечний для потоків екземпляр Random, який можна використовувати з будь-якого потоку одночасно。 Посилання:Вхід за гіперпосиланням видно.
По-перше, нам потрібно знати, що Random не є безпечним для потоків, тому якщо ми хочемо використовувати Random у багатопотоковості, зазвичайПотрібно враховувати безпеку різьби。 Оскільки він не є потоковим, ми можемо створювати один, коли користуємося, і новий щоразу, але в цьому випадку код недостатньо лаконічний, а з іншого боку може створювати більше випадкових об'єктів, а також є додаткові витрати на продуктивність.
Давайте порівняємо і протестуємо це за допомогою BenchmarkDotNet, і код виглядає так:
Старий метод полягає в тому, що я завжди створюю новий випадковий об'єкт для генерації випадкового числа, а новий метод викликає останній метод Random.Shared, наданий у .NET 6. Тестові рендери такі:
Ми дивимося на середній середній час виконання з новими функціями10-кратний прискорення。
(Кінець)
|
Попередній:ASP.NET Core (дванадцять) фронтенд JS, пакетування CSS та стисненняНаступний:ASP.NET Core (XIII), щоб визначити, чи є це запитом Ajax
|