Nemrég a Microsoft közzétett egy blogbejegyzést a .NET 6 teljesítményjavulásáról, amelyben sok érdekes dolgot említettek, köztük az egyik a Random.Shared volt.
Ez egy csak olvasható statikus tulajdonság, és szálbiztonsági objektum, ez segíthet egyszerűsíteni a véletlenszerű objektumok használatát.
Véletlenszerű.MegosztottBiztosít egy szál-biztonságos Random példányt, amely bármely szálból egyszerre használható。 Utalás:A hiperlink bejelentkezés látható.
Először is tudnunk kell, hogy a Random nem szálbiztonságú, tehát ha többszálas megoldásban szeretnénk használni a Random-t, általábanA menetbiztonságot figyelembe kell venni。 Mivel nem thread-biztonságos, akkor létrehozhatunk egyet, amikor használjuk, és minden alkalommal újat, de ebben az esetben a kód nem elég tömör, másrészt több véletlenszerű objektumot hozhat létre, és teljesítményterhelés is van.
Hasonlítsuk össze és teszteljük a BenchmarkDotNet-tel, és a kód a következő:
A régi módszer az, hogy mindig új véletlenszerű objektumot adok egy véletlenszám generálásához, és az új metódus a legfrissebb Random.Shared metódust hívja, amit a .NET 6-ban biztosítottak. A tesztképek a következők:
Az új funkciókkal az átlagos átlagos végrehajtási időt vizsgáljuk10x boost。
(Vége)
|