For nylig lagde Microsoft et blogindlæg op om forbedringer i .NET 6's ydeevne, som nævnte mange interessante ting, hvoraf en var Random.Shared.
Dette er en skrivebeskyttet statisk egenskab og et trådsikkert objekt, som kan hjælpe os med at forenkle brugen af tilfældige objekter.
Tilfældig.Delt.Giver en trådsikker instans af Random, som kan bruges fra enhver tråd på samme tid。 Henvisning:Hyperlink-login er synlig.
Først og fremmest skal vi vide, at Random ikke er trådsikker, så hvis vi vil bruge Random i multithreading, plejer vi at bruge Random i multithreading.Trådsikkerhed skal tages i betragtning。 Da det ikke er trådsikkert, kan vi oprette et, når vi bruger det, og et nyt hver gang, men i dette tilfælde er koden ikke kortfattet nok, og på den anden side kan det skabe flere tilfældige objekter, og der er også en ydeevneoverhead.
Lad os sammenligne og teste det med BenchmarkDotNet, og koden er som følger:
Den gamle metode er, at jeg altid har et nyt tilfældigt objekt til at generere et tilfældigt tal, og den nye metode kalder den nyeste Random.Shared-metode, der leveres i .NET 6. Testrenderingerne er som følger:
Vi ser på den gennemsnitlige udførelsestid med de nye funktioner10x boost。
(Slut)
|