Recientemente, Microsoft publicó una entrada en su blog sobre mejoras en el rendimiento de .NET 6, en la que se mencionaban muchas cosas interesantes, una de ellas Random.Shared.
Esta es una propiedad estática de solo lectura y un objeto seguro para hilos, esto puede ayudarnos a simplificar el uso de objetos aleatorios.
Random.CompartidoProporciona una instancia segura para hilos de Random que puede usarse desde cualquier hilo al mismo tiempo。 Referencia:El inicio de sesión del hipervínculo es visible.
En primer lugar, necesitamos saber que Random no es seguro para hilos, así que si queremos usar Random en multihilo, normalmenteHay que tener en cuenta la seguridad de los hilos。 Como no es seguro para hilos, podemos crear uno cuando lo usamos, y uno nuevo cada vez, pero en este caso, el código no es lo suficientemente conciso y, por otro lado, puede crear más objetos aleatorios, además de que hay una sobrecarga de rendimiento.
Vamos a compararlo y probarlo con BenchmarkDotNet, y el código es el siguiente:
El método antiguo es que siempre inicio un nuevo objeto aleatorio para generar un número aleatorio, y el método nuevo llama al último método Random.Shared proporcionado en .NET 6. Las representaciones de prueba son las siguientes:
Analizamos el tiempo medio medio de ejecución con las nuevas funcionesTurbo 10x。
(Fin)
|