Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo descreve informações de desempenho para alocações de matriz de comprimento zero.
Causa
A alocação de matrizes de comprimento zero no .NET pode levar a alocações de memória desnecessárias. Essas alocações, embora pequenas, podem se acumular e causar problemas de desempenho, especialmente em aplicativos de alto desempenho ou com restrição de memória.
Descrição do insight de desempenho
Quando uma matriz de comprimento zero é alocada, isso resulta em uma alocação de memória que não é necessária. Em vez de criar uma nova matriz, é mais eficiente usar a instância de matriz vazia alocada estaticamente fornecida pelo método Array.Empty<T>(). Esse método retorna uma matriz vazia em cache do tipo especificado, evitando a sobrecarga de uma nova alocação.
Como investigar um aviso
Clique no link Investigar para ir para a exibição de Alocação de mostrando a matriz de comprimento zero alocada. Clicar duas vezes na alocação mostra os caminhos de código onde as alocações estão ocorrendo. Considere reduzir essas alocações usando a instância de matriz vazia alocada estaticamente fornecida pelo Array.Empty<T>().
A partir do Visual Studio versão 18.0.0 Preview 1 ou posterior, se o Copilot estiver habilitado, você verá a
botão. Selecione o botão e o Copilot fornece uma análise detalhada dos padrões de alocação e sugere correções de código para otimizar o uso da memória.
Aqui está um exemplo de uma alocação de matriz vazia e sua resolução:
Violação:
class Example
{
public void Method()
{
var array = new int[0];
}
}
Resolução:
class Example
{
public void Method()
{
var array = Array.Empty<int>();
}
}
Recursos adicionais
Para obter mais informações sobre como evitar alocações de matriz de comprimento zero e outras práticas recomendadas de desempenho, consulte o seguinte recurso:
CA1825: Evite alocações de matriz de comprimento zero (análise de código)
Seguindo essas diretrizes, você pode garantir que seu aplicativo seja otimizado para desempenho e evite sobrecarga de memória desnecessária.