Eventos
Compilación de Intelligent Apps
17 mar, 21 - 21 mar, 10
Únase a la serie de reuniones para crear soluciones de inteligencia artificial escalables basadas en casos de uso reales con compañeros desarrolladores y expertos.
Regístrese ahoraEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
El recolector de elementos no utilizados se ajusta automáticamente y puede funcionar en gran variedad de escenarios. Pero puede establecer el tipo de recolección de elementos no utilizados en función de las características de la carga de trabajo. El CLR proporciona los tipos siguientes de recolección de elementos no utilizados:
La recolección de elementos no utilizados (GC) de estación de trabajo, que está diseñada para las aplicaciones cliente. Es el tipo de GC predeterminado para las aplicaciones independientes. En el caso de las aplicaciones hospedadas, por ejemplo, las que se hospedan en ASP.NET, el host determina el tipo de GC predeterminado.
La recolección de elementos no utilizados de estación de trabajo puede ser simultánea o no simultánea. La recolección simultánea (o en segundo plano) de elementos no utilizados permite que los subprocesos administrados continúen con sus operaciones durante una recolección de elementos no utilizados. La recolección de elementos no utilizados en segundo plano reemplaza la recolección simultánea de elementos no utilizados en .NET Framework 4 y versiones posteriores.
Recolección de elementos no utilizados de servidor, diseñada para las aplicaciones de servidor que necesitan un alto nivel de rendimiento y escalabilidad.
En .NET Core, la recolección de elementos no utilizados de servidor puede ser no simultánea o en segundo plano.
En .NET Framework 4.5 y versiones posteriores, la recolección de elementos no utilizados de servidor puede ser no simultánea o en segundo plano. En .NET Framework 4 y versiones anteriores, la recolección de elementos no utilizados de servidor no es simultánea.
En las siguientes ilustraciones se muestran los subprocesos dedicados que realizan la recolección de elementos no utilizados en un servidor:
Estas son algunas consideraciones sobre subprocesos y rendimiento para la recolección de elementos no utilizados de estación de trabajo:
La recolección se produce en el subproceso del usuario que desencadenó la recolección de elementos no utilizados y permanece en la misma prioridad. Como los subprocesos de usuario suelen ejecutarse con prioridad normal, el recolector de elementos no utilizados (que se ejecuta en un subproceso de prioridad normal) debe competir con otros subprocesos por el tiempo de la CPU. (Los subprocesos que ejecutan código nativo no se suspenden en la recolección de elementos no utilizados de servidor o de estación de trabajo).
La recolección de elementos no utilizados de estación de trabajo siempre se utiliza en un equipo que tiene una sola CPU lógica, sin tener en cuenta el valor de configuración.
Estas son algunas consideraciones sobre subprocesos y rendimiento para la recolección de elementos no utilizados de servidor:
La colección se produce en varios subprocesos dedicados. En Windows, estos subprocesos se ejecutan en el nivel de prioridad THREAD_PRIORITY_HIGHEST
.
Para cada CPU lógica se proporciona un montón y un subproceso dedicado para realizar recolección de elementos no utilizados y, al mismo tiempo, se recolectan los montones. Cada montón contiene un montón de objetos pequeños y un montón de objetos grandes; a todos ellos se puede tener acceso mediante código de usuario. Los objetos de montones diferentes pueden hacerse referencia a entre sí.
Dado que varios subprocesos de recolección de elementos no utilizados funcionan juntos, la recolección de elementos no utilizados de servidor es más rápida que la de estación de trabajo, con un montón del mismo tamaño.
La recolección de elementos no utilizados de servidor suele tener segmentos de mayor tamaño. Sin embargo, esto es solo una generalización: el tamaño de los segmentos es específico de la implementación y está sujeto a cambios. No haga ninguna suposición sobre el tamaño de los segmentos asignados por el recolector de elementos no utilizados al optimizar la aplicación.
La recolección de elementos no utilizados de servidor puede consumir gran cantidad de recursos. Por ejemplo, imagina que hay 12 procesos que usan GC de servidor que se ejecutan en un equipo con cuatro CPU lógicas. Si todos los procesos tienen que recopilar elementos no utilizados al mismo tiempo, interfieren entre sí, ya que serían 12 subprocesos programados en la misma CPU lógica. Si los procesos están activos, no es recomendable que todos usen GC de servidor.
Si se ejecutan centenares de instancias de una aplicación, puede ser más conveniente utilizar la recolección de elementos no utilizados de estación de trabajo con la recolección simultánea de elementos no utilizados deshabilitada. De este modo se realizarán menos cambios de contexto, lo que puede mejorar el rendimiento.
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios:
Eventos
Compilación de Intelligent Apps
17 mar, 21 - 21 mar, 10
Únase a la serie de reuniones para crear soluciones de inteligencia artificial escalables basadas en casos de uso reales con compañeros desarrolladores y expertos.
Regístrese ahoraCursos
Módulo
Supervisión del rendimiento de Windows Server - Training
Aprenda a usar una serie de herramientas de Windows Server para supervisar el sistema operativo y las aplicaciones en un equipo servidor. También aprenderá a configurar el sistema para optimizar la eficacia y solucionar problemas.
Documentación
Valores de configuración del recolector de elementos no utilizados - .NET
Obtenga información sobre los valores del entorno de ejecución para configurar el modo en el que el recolector de elementos no utilizados administra la memoria de las aplicaciones de .NET.
Recolección de elementos no utilizados en segundo plano - .NET
Obtenga información sobre la recolección de elementos no utilizados en .NET y cuáles son las diferencias en la recolección de elementos no utilizados de estación de trabajo y de servidor.
Recolección de elementos no utilizados y rendimiento - .NET
Obtenga información sobre los problemas relacionados con la recolección de elementos no utilizados y el uso de memoria. Aprenda a minimizar el efecto de la recolección de elementos no utilizados en las aplicaciones.