Operación de pila o operación Heap, ambas serán las mismas que está accediendo a una dirección de memoria que están en dos ubicaciones diferentes.
Los tipos de valores son pequeños, int, byte, etc., son de pequeño tamaño y se mencionan con mucha frecuencia en términos de cálculos matemáticos. Dado que son de un tamaño muy pequeño, de 4 a 16 bytes como máximo, (no debe usar más de 16 bytes en el tipo de valor para obtener el mejor rendimiento), asignar ese pequeño espacio en el montón y desasignar, recoger basura, etc. sería muy costoso.
Cada método que ingrese, en un promedio definimos 10 tipos de valores locales para usarlo internamente, que será muy costoso en montón como tipos de referencia.
La pila puede crecer y reducirse fácilmente (no el tamaño de la pila, sino la porción de pila utilizada para el Método actual !!) ya que los tipos de valores se tratan como desplazamiento del puntero de pila, y su asignación y desasignación es fácil ya que es simple y decrememnt en stackpointer por tamaño total de todos los tipos de valor utilizados.
Donde más en el tipo de referencia, cada objeto de referencia tiene su propia asignación y tamaño, además CLR tiene que mantener la tabla de objetos que es una especie de índice de punteros reales en memoria para evitar desbordamientos de búfer. Por lo tanto, un objeto que utilice (tipo de referencia) en realidad tiene dos almacenamiento, una entrada de índice en la tabla de referencia de CLR y espacio de memoria real. Por eso es fácil y rápido almacenar tipos de valores en la pila.
También vea http://blogs.msdn.com/b/ericlippert/archive/2010/09/30/the-truth-about-value-types.aspx –
El artículo en el enlace de arriba es brillante, ¿por qué no tiene más votos ascendentes? –