es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Jest parece no ser afectado por la opción de node –max-old-space-size.

He estado trabajando para superar aparentes fugas de memoria al ejecutar jest que se describen aquí: https://github.com/facebook/jest/issues/7874

Me gustaría simplemente darle a jest una gran cantidad de espacio de almacenamiento para que mis pruebas se completen a pesar de las fugas. Sin embargo, utilizando esta línea de comando:

node –max-old-space-size=8192 –expose-gc ./node_modules/.bin/jest –no-cache –runInBand –logHeapUsage

Todavía obtengo “Javascript heap fuera de memoria” alrededor de los 1500MB de uso de almacenamiento. Si ejecuto:

node –max-old-space-size=8192

y luego hago:

v8.getHeapStatistics()
{

heap_size_limit: 8640266240

}

por lo que claramente puedo afectar el tamaño de almacenamiento de node. Pero de alguna manera no afecta a jest.

Node: 16.13.0
Jest: 27.4.4
¿Alguna idea?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema con las fugas de memoria en Jest puede no estar relacionado con la configuración del tamaño del montón. Si bien aumentar el tamaño del montón puede ayudar con algunos problemas relacionados con la memoria, puede que no solucione la causa raíz de las fugas.

    Algunas sugerencias para intentar solucionar las fugas de memoria en Jest:

    1. Verifique si hay llamadas async/await dentro de las funciones de prueba que no se estén limpiando correctamente después de cada prueba.
    2. Utilice la opción --detectOpenHandles para identificar cualquier controlador abierto que esté impidiendo que Jest se cierre correctamente.
    3. Considere dividir las pruebas en fragmentos más pequeños o ejecutar las pruebas en paralelo para reducir el uso de memoria.
    4. Busque cualquier suite de pruebas o función individual que pueda estar causando un uso excesivo de memoria e intente optimizarlos o refactorizarlos.

    En general, puede ser útil analizar los patrones de uso de memoria de Jest durante la ejecución de una prueba para identificar dónde se están produciendo las fugas y enfocarse en esas áreas para solucionar problemas.

Comments are closed.