voltios voltaje una tipos tiene tamaños recargables que pilas pila existen cuantos clasificacion alcalinas .net resize stack stack-overflow

.net - voltaje - tipos de pilas recargables



¿Cómo cambiar el tamaño de la pila para un programa.NET? (4)

La forma más sencilla de configurar el tamaño de la pila desde .NET 2.0 y Win XP en adelante es generar un nuevo hilo con el tamaño de pila que desee: -

using System.Threading; Thread T = new Thread(threadDelegate, stackSizeInBytes); T.Start();

Para cambiar el tamaño de la pila de todo el programa, deberías usar editbin: -

EDITBIN.EXE /STACK:<stacksize> file.exe

Tengo un programa que hace llamadas recursivas por 2 mil millones de veces y el desbordamiento de la pila. Realizo cambios y aún necesito 40,000 llamadas recursivas. Entonces necesito probablemente varios MB de memoria de pila. Escuché que el tamaño de la pila es por defecto de 1MB. Intenté buscar en línea. Alguien dijo que fuera a propiedades -> linker ......... en Visual Studio, pero no puedo encontrarlo.

¿Alguien sabe cómo aumentarlo? También me pregunto si puedo configurarlo en algún lugar de mi programa C #.

PD Estoy usando winXP de 32 bits y win7 de 64 bits.


Lo más probable es que intente utilizar bucles en lugar de recurrencia.


No hay una opción de compilación para hacerlo. Puede editarlo después del hecho usando editbin / stack , o crear un hilo separado para su algoritmo, y especificar un tamaño de pila más grande en el constructor Thread .

Dicho esto, es posible que desee aplanar su función recursiva ... Si tiene desbordamientos de pila ahora, es difícil saber que cualquier tamaño de pila será apropiado a largo plazo. Esta es solo una solución de curita.


Sé que en VS puedes establecer un tamaño de pila arbitrario (EDITAR: para programas C ++). Sin embargo, le sugiero que use una llamada final (es decir, devuelva MyFunc (args);) que recicla automáticamente el espacio de la pila. Luego, usaría algún objeto asignado en el montón para mantener el estado.