c# - programacion - pilas en c++ codigo
Capacidad de pila en C# (5)
El tamaño de la pila es configurable y se puede configurar de diferentes maneras .
Podría alguien decirme cuál es la capacidad de la pila en C #.
Estoy tratando de formar un objeto cerrado de malla 3D usando una matriz de 30,000 elementos.
El tamaño de pila predeterminado para una aplicación .NET es de 1 MB (el valor predeterminado es 256 KB para las aplicaciones ASP.NET de 32 bits y 512 KB para las aplicaciones ASP.NET de 64 bits), pero puede cambiar eso. Para la aplicación puede cambiar el tamaño predeterminado modificando el encabezado PE del ejecutable. Para los hilos que cree, puede usar la sobrecarga del constructor que toma un tamaño de pila.
Pero como señala Anton Tyjhyy en su respuesta, las matrices son tipos de referencia y, por lo tanto, ubicadas en el montón (incluso si la matriz tiene varios tipos de valores).
Para usar la pila para almacenar una matriz, debe usar un código inseguro con punteros y stackalloc para asignar el espacio de memoria deseado en la pila.
Si desea verificar el valor de su ensamblado .Net actual, puede hacerlo utilizando el comando ILDASM
que viene con el símbolo del sistema de Visual Studio. Una vez que haya iniciado la herramienta, abra su ensamblaje y luego vaya a View -> Headers
menú View -> Headers
. Ahora desplácese hacia abajo a la sección PE Optional Header (32 bit)
en la ventana de Headers
recién abierta. Verás dos campos:
- Tamaño de la reserva de la pila: esto se explica por sí mismo. Este es el tamaño predeterminado de memoria de pila asignado a cualquier subproceso que se crea en su programa / aplicación.
- Tamaño de la apuesta de la apuesta: el espacio de la pila comprometida es - (Citando a Hans Passant desde here )
Dicho espacio está reservado en el archivo de paginación del sistema operativo para que la pila siempre se pueda intercambiar cuando sea necesario.
Su matriz vivirá en el montón, el tamaño de la pila es irrelevante en su caso.