Vereisten: Onlangs,<T> kijkend naar kennis zoals Span en Memory<T>, vind ik dat er veel voordelen zijn aan het gebruik van zulke objecten, zoals: directe toegang tot geheugen (en zeer veilig), vermindering van onnodige geheugentoewijzing (afhankelijk van de scène, bijvoorbeeld Substring-interceptie van stringconversie), aanpassing van waarden in het geheugen, en toch leren, niet dat diepgaande begrip.
System.Span<T> is een nieuw waardetype in de .NET-core. Het ondersteunt een representatie van een aaneengesloten gebied van willekeurig geheugen, of dat geheugen nu gekoppeld is aan een beheerd object, geleverd door native code via interoperabiliteit, of zich in de stack bevindt. Dit doet het terwijl het toch veilige toegang biedt, met prestatiekenmerken vergelijkbaar met arrays. In gebruik zorgt Span voor geheugen- en databeveiliging met weinig tot geen overhead.
Als we bijvoorbeeld Substring gebruiken om een string om te zetten naar type int, guid, long, enz., gebruiken we de inhoud van de onderschepte string niet meer, maar het aanroepen van Substring om een nieuwe string terug te geven, zal nieuwe geheugenruimte aanvragen.
Eerst wordt de BenchmarkDotNet-benchmarktool geïntroduceerd, als volgt:
De testcode is als volgt:
De resultaten zijn als volgt:
Referentie:
De hyperlink-login is zichtbaar.
De hyperlink-login is zichtbaar.
|