• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
    • Questions
    • Teachers
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

234
Views
Pérdida de memoria: JavaScript: pasar el búfer de matriz a Web Worker usando un objeto transferible, GC no se activa

Entonces, estoy pasando el búfer de video (búfer Float32Array) al subproceso de trabajo como un objeto transferible, sucede para cada cuadro del video (es decir, los cuadros de video se pasan continuamente al trabajador). Hice un perfil de memoria y el subproceso de trabajo retiene el objeto, parece que el recolector de basura no se activa. ¿Cómo manejar este caso? No creo que uno pueda invocar GC explícitamente en JavaScript.

Aquí está el fragmento de código de cómo paso el búfer de video al subproceso de trabajo:

 this.worker.postMessage({ command: 'SetVideoBuffer', data: { videoFrame: videoFrame } }, [videoFrame.buffer]);

Además, intenté configurar el búfer en el lado del trabajador en 'nulo', no ayudó.

¿Alguna idea de cómo resolver esto, es esta cosa de cromo? Por favor ayuda.

¡Gracias!

almost 3 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Entonces, obtuve la solución a este problema, parece que si uno devuelve el búfer de video al hilo principal donde se creó, GC se activa y limpia el montón.

Al usar la misma forma de copia cero (objetos transferibles), transfirí el búfer nuevamente al hilo principal, el problema de pérdida de memoria se resolvió.

almost 3 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 Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error