Requisiti: Recentemente, guardando a conoscenze<T> come Span e Memory<T>, ritengo che ci siano molti vantaggi nell'uso di tali oggetti, come: accesso diretto alla memoria (e molto sicuro), riduzione dell'allocazione di memoria non necessaria (a seconda della scena, ad esempio, intercettazione di sottostringa della conversione di stringhe), modifica dei valori in memoria e ancora apprendimento, non una comprensione approfondita.
System.Span<T> è un nuovo tipo di valore nel core .NET. Supporta una rappresentazione di una regione contigua di memoria arbitraria, sia che quella memoria sia associata a un oggetto gestito, fornita da codice nativo tramite interop, sia che sia nello stack. Lo fa pur fornendo accesso sicuro, con caratteristiche di prestazioni simili a quelle degli array. In utilizzo, Span garantisce la sicurezza di memoria e dati con poco o nessun sovraccarico.
Ad esempio, se usiamo una Substringa per convertire una stringa in tipo int, guid, long, ecc., non useremo più il contenuto intercettato, ma chiamare una Substringa per restituire una nuova stringa richiederà nuovo spazio di memoria.
Per prima cosa, viene introdotto lo strumento di benchmarking BenchmarkDotNet, come segue:
Il codice di prova è il seguente:
I risultati sono i seguenti:
Riferimento:
Il login del link ipertestuale è visibile.
Il login del link ipertestuale è visibile.
|