|
|
Zveřejněno 31. 3. 2022 v 16:20:26
|
|
|
|

Nedávno Microsoft zveřejnil blogový příspěvek o zlepšení výkonu .NET 6, který zmínil spoustu zajímavých věcí, mezi nimiž i Random.Shared.
Jedná se o statickou vlastnost pouze pro čtení a objekt bezpečný pro vlákna, tato věc nám může pomoci zjednodušit používání náhodných objektů.
Random.SdílenoPoskytuje instanci náhodného vlákna bezpečnou, kterou lze použít z libovolného vlákna současně。 Odkaz:Přihlášení k hypertextovému odkazu je viditelné.
Nejprve potřebujeme vědět, že Random není bezpečný pro vlákna, takže pokud chceme použít Random v multithreadingu, obvykleJe třeba zvážit bezpečnost závitu。 Protože není bezpečný pro vlákna, můžeme si ho vytvořit při použití a pokaždé nový, ale v tomto případě kód není dostatečně stručný a na druhou stranu může vytvářet více náhodných objektů, což je také výkonnostní režia.
Porovnejme to a otestujme to s BenchmarkDotNet a kód je následující:
Stará metoda byla taková, že vždy vygeneruji nový náhodný objekt, který generuje náhodné číslo, a nová metoda volá nejnovější metodu Random.Shared z .NET 6. Testovací zobrazení jsou následující:
Díváme se na průměrnou dobu provedení u nových funkcí10x zvýšení。
(Konec)
|
Předchozí:ASP.NET Jádro (dvanáct) front-end JS, CSS balíčkování a kompreseDalší:ASP.NET Core (XIII), abyste zjistili, zda jde o požadavek Ajaxu nebo ne
|