"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cuándo es aceptable llamar a gc.collect ()?

¿Cuándo es aceptable llamar a gc.collect ()?

Publicado el 2025-03-23
Navegar:159

When is it Acceptable to Call GC.Collect()?

tiempo para usar gc.collect con precaución

Si bien no se recomienda llamar gc.collect () directamente, en algunos casos específicos, esto es razonable. Por ejemplo, cuando un servicio se ejecuta de manera circular y está inactivo durante mucho tiempo después de ejecutar una tarea, es posible optimizar la utilización de los recursos cuando se ve obligado a la recolección de basura durante la fase inactiva para liberar la memoria ocupada por el proceso que está a punto de fallar.

Otra situación aceptable es después de cerrar una forma grande en una aplicación GUI. Dado que todos los controles de la interfaz de usuario cumplen con la recolección de basura en este momento, y la breve caída de rendimiento durante los usuarios de cierre del formulario puede no notarlo, es razonable iniciar la recolección GC.

Además, las siguientes situaciones también pueden requerir la consideración de llamar gc.collect () :

  • Cuando tiene evidencia sólida de que una gran cantidad de objetos (especialmente objetos Gen 1 y Gen 2) están listos para la recolección de basura, y que el impacto del rendimiento es mínimo.
  • a partir de .NET 4.5, al ingresar o salir gClatencyMode.lowlatency o gClatencyMode.sustrainseDlowlatency se recomienda para aplicar GC completo usando gc.collect (2, gcCollectionMode.forced)
  • gClatencyMode.SustrainedLowlatency
  • . usando .NET 4.6, puede usar el método
  • gc.trystartnogcregion
para deshabilitar GC por un período de tiempo. Se recomienda activar manualmente el GC completo antes y después de este período.

Estas excepciones enfatizan la importancia de la precaución al llamar

gc.collect ()

. Es importante evaluar el entorno específico y el impacto potencial del rendimiento antes de tomar esta decisión. When is it Acceptable to Call GC.Collect()?

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3