Uno dei motivi per cui ASP.NET ha delle prestazioni elevate è l'utilizzo a degli Span. Grazie a questa tecnica si possono eseguire molte operazioni sulle stringhe senza dover allocare nuova memoria e qesto torna molto utile quando si devono parsare le intestazioni di una richiesta HTTP o quando si deve effettuare il parsing di un JSON (operazioni comuni in ASP.NET). Grazie alla minor allocazione, abbiamo meno cicli di garbage collection e quindi il processore passa meno tempo ad eseguire codice "di sistema" e più tempo ad eseguire codice "applicativo"
Un tipico caso in cui possiamo utilizzare gli Span anche noi per migliorare le performance del nostro codice è nel parsing di file. Supponiamo di dover parsare un file csv o un qualunque file con campi delimitati da un carattere predefinito. Se riusciamo a leggere il file non come stringa, ma come span di caratteri, possiamo estrarre i campi di ogni riga semplicemente usando il metodo Split. Questo metodo splitta lo span originale in tanti oggetti Range senza quindi allocare nuove stringhe come invece farebbe il metodo omonimo della classe String. In questo snippet vediamo se esiste un certo valore in una riga che usa il carattere ";" come separatore.
public bool Contains(ReadOnlySpan<char> span, string item)
{
foreach (Range segment in span.Split(';'))
{
if (span[segment].SequenceEquals(item))
return true;
}
return false;
}Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Integrazione di Copilot in .NET Aspire
Controllare la telemetria con .NET Aspire
Creare comandi nella dashboard .NET Aspire
Integrare OpenAI tramite Aspire
Managed deployment strategy in Azure DevOps
Abilitare automaticamente il force push di un gruppo su Azure DevOps
Utilizzare DeepSeek R1 con Azure AI
Ridurre il reflow cambiando il CSS
Gestione ciclo di vita in .NET Aspire
.NET Aspire per applicazioni distribuite
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Configurare OpenAI in .NET Aspire
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Sfruttare una CDN con i bundle di ASP.NET
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Le DirectInk API nella Universal Windows Platform
- Gli oggetti CallOut di Expression Blend 4.0
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Inserire le news di Punto Informatico nel proprio sito


