|
|
Опубликовано 31.03.2022 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
|