Cuando es una matriz de tamaño fijo asignado en la pila?
-
15-11-2019 - |
Pregunta
Tengo el siguiente método para copiar los bytes de un socket de flujo de disco a:
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);
}
}
Lo que tengo curiosidad por saber es:se buffer
se almacena en la pila o en el
del montón?Para estar seguro, yo podría hacer que este método inseguro, y agregar el fixed
la palabra clave para
la declaración de la variable, pero no quiero hacer que el ifn no tengo que.
Solución
El buffer
variable será asignado en la pila, el 8192 bytes de memoria de la buffer
variable contiene la ubicación será en el montón.
por qué estás hablando fixed
?Está tratando de acelerar las cosas?Es casi seguro que no...
Citando a Eric Lippert:
"Pero en la gran mayoría de los programas de hay, de la variable local asignaciones y deallocations no va a ser el cuello de botella de rendimiento."
Ref.