Quando um array de tamanho fixo é alocado na pilha?
-
15-11-2019 - |
Pergunta
Eu tenho o seguinte método para copiar bytes de um fluxo de soquete para o disco:
public static void CopyStream(Stream input, Stream output)
{
// Insert null checking here for production
byte[] buffer = new byte[8192];
int bytesRead;
while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0)
{
output.Write(buffer, 0, bytesRead);
}
}
O que estou curioso é:vai buffer
ser alocado na pilha ou na pilha?Com certeza, eu poderia tornar esse método inseguro e adicionar o fixed
Palavra -chave para a declaração variável, mas não quero fazer isso se não preciso.
Solução
O buffer
variável será alocada na pilha, a memória de 8192 bytes será buffer
variável mantém a localização de estará no heap.
por que você está falando fixed
?Você está tentando acelerar as coisas?É quase certo que não...
Para citar Eric Lippert:
"Mas na grande maioria dos programas por aí, alocações e desalocações de variáveis locais não serão o gargalo de desempenho."
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow