Hubiera pensado que sería claro si la asignación de memoria es más rápida en el código administrado que en el código nativo - but there seems to be some controversy. Quizás la administración de memoria en una máquina virtual sea más rápida porque no hay llamadas de intercambio de contexto al sistema operativo, pero luego veo que la máquina virtual necesitaría realizar llamadas periódicas al sistema operativo para obtener más memoria, y tiene la administración sobrecargando la memoria misma en lugar del sistema operativo.¿La gestión de memoria .NET es más rápida en código administrado que en código nativo?
En lugar de hacer afirmaciones sin fundamento como las que tengo, proporcione enlaces a las referencias que respaldan su posición.
¿Eso no llevaría a una pila en constante crecimiento? Y la fragmentación de la pila? – Josh
Josh, ahí es donde entra la recolección de basura. Elimina los objetos sin referencia del montón, luego mueve todos los objetos restantes para convertirlo en un bloque contiguo de memoria usada una vez más, luego actualiza todas las referencias afectadas con los nuevos valores del puntero. –
Así que la asignación de memoria es rápida en el código administrado, pero la lentitud de los eventos ocasionales de recolección de basura es la compensación. –