Verfolgung der Speicherzuweisung von Firefox mit eBPF

2025-05-31

Der Autor verwendete eBPF (extended Berkeley Packet Filter), um die Speicherzuweisung in SpiderMonkey, der JavaScript-Engine von Firefox, zu verfolgen. Das ursprüngliche Ziel war es, die Quellorte der häufigen Erstellung von Rooted-Objekten für die Optimierung der Speicherverwaltung zu ermitteln. Mit dem Tool bpftrace und Benutzersondierungen (uprobes) konnte der Autor die Funktion `registerWithRootLists` erfolgreich verfolgen und die Funktion ustack verwenden, um Informationen zum Aufrufstack zu erhalten. Schließlich erstellte der Autor Berichte und meldete mehrere Fehler, wodurch die Speicherzuweisung optimiert und zig Millionen Aufrufe von `registerWithRootLists` reduziert wurden.

Entwicklung