Requisitos: Recentemente, analisando conhecimentos<T> como Span e Memory<T>, sinto que há muitas vantagens em usar esses objetos, como: acesso direto à memória (e muito seguro), redução da alocação desnecessária de memória (dependendo da cena, por exemplo, interceptação por substring da conversão de string), modificação de valores na memória e ainda aprendizado, não esse entendimento aprofundado.
System.Span<T> é um novo tipo de valor no núcleo .NET. Ele suporta uma representação de uma região contígua de memória arbitrária, seja essa memória associada a um objeto gerenciado, fornecida por código nativo via interop, ou na pilha. Ele faz isso enquanto ainda oferece acesso seguro, com características de desempenho semelhantes às de arrays. Em uso, o Span garante a segurança da memória e dos dados com pouca ou nenhuma sobrecarga.
Por exemplo, se usarmos Substring para converter uma string para digitar int, guid, long, etc., não usaremos mais o conteúdo da string interceptada, mas chamar Substring para retornar uma nova string solicitará novo espaço de memória.
Primeiro, a ferramenta de benchmarking BenchmarkDotNet é apresentada, da seguinte forma:
O código do teste é o seguinte:
Os resultados são os seguintes:
Referência:
O login do hiperlink está visível.
O login do hiperlink está visível.
|