Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

289
Views
Angular no libera memoria en la destrucción de componentes

Tengo dos componentes: ComponentList y ComponentDetail. La forma en que funciona en este momento es que un usuario elegirá uno de la lista y lo redirigirá al ComponentDetail que llama a una API y obtiene un gran conjunto de datos para un observable. Ahora, el problema que estoy encontrando es que cuando vuelvo a ComponentList, la memoria que usa ComponentDetail no se recolecta basura en OnDestroy. Se cae después de diez minutos, pero si se forzara la GC desde las herramientas de desarrollo, liberaría el espacio de la memoria rápidamente. No estoy seguro de cuál es la causa de que tarde mucho tiempo en recopilarse automáticamente. ¿Hay algo que pueda hacer para que la recolección de elementos no utilizados se realice justo después de ngOnDestroy?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

(Desarrollador V8 aquí.)

Solo para confirmar lo que han dicho los comentaristas: no hay forma de forzar la recolección de basura inmediata, y no debería tener que preocuparse por eso. Cuando su aplicación hace que un objeto sea elegible para la recolección de elementos no utilizados (eliminando todas las referencias a él), el recolector de elementos no utilizados lo liberará la próxima vez que se ejecute , lo que podría ser bastante pronto o podría llevar un tiempo. La razón es simplemente que encontrar objetos muertos es una operación costosa, por lo que V8 (y, por supuesto, otros motores JS) se ajustan con mucho cuidado para encontrar un buen equilibrio entre liberar memoria razonablemente rápido (especialmente cuando hay presión de memoria) y no gastar demasiado tiempo de CPU en hacerlo.

En el caso que nos ocupa, no es sorprendente que cuando asigna un solo objeto grande (o grupo de objetos), y luego elimina todas las referencias a él, y luego simplemente espera, tomará un tiempo para que comience el próximo ciclo de GC. en; mientras que si continúa asignando objetos grandes, entonces toda esa actividad de asignación sería una pista fuerte para que el GC se active y busque la basura que puede liberar.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!