language-agnostic - memory-management - vb net get current memory usage - ¿Qué y dónde están la pila y el montón?

how to measure memory usage in c# / memory-management / stack / heap / dynamic-memory-allocation

Los libros de lenguaje de programación explican que los tipos de valor se crean en la pila y los tipos de referencia se crean en el montón , sin explicar cuáles son estas dos cosas. No he leído una explicación clara de esto. Entiendo lo que es una pila . Pero,

RajeshKdev



Answer #1

Hacer un enorme buffer temporal en Windows que no usas mucho no es gratis.Esto se debe a que el compilador generará un bucle de sondeo de la pila que es llamado cada vez que tu función es introducida para asegurarse de que la pila existe (porque Windows utiliza una única página de guarda al final de la pila para detectar cuando necesita hacer crecer la pila.Si accedes a la memoria a más de una página del final de la pila te estrellarás).Ejemplo:

void myfunction()
{
   char big[10000000];
   // Haz algo que solo se use durante los primeros 1K del gran 99% del tiempo.
}