Seguimiento de la asignación de memoria de Firefox con eBPF
2025-05-31
El autor utilizó eBPF (extended Berkeley Packet Filter) para rastrear la asignación de memoria en SpiderMonkey, el motor JavaScript de Firefox. El objetivo inicial era identificar las ubicaciones de origen de las frecuentes creaciones de objetos Rooted para la optimización de la gestión de memoria. Utilizando la herramienta bpftrace y las sondas de usuario (uprobes), el autor rastreó con éxito la función `registerWithRootLists` y utilizó la función ustack para obtener información de la pila de llamadas. Finalmente, el autor generó informes y abrió varias incidencias, optimizando la asignación de memoria y reduciendo decenas de millones de llamadas a `registerWithRootLists`.
Desarrollo