Meta reanimiert jemalloc nach vier Jahren Stillstand

Meta Logo

Totgesagte leben länger: Rund vier Jahre lang lag der bei Entwicklern beliebte Speicherallokator jemalloc auf Eis. Jetzt hat Meta seine Ankündigung wahr gemacht und der Bibliothek neues Leben eingehaucht.

Bereits Anfang März kündigte Meta an, die Arbeiten am jemalloc fortführen zu wollen. Vorausgegangen waren Forderungen aus der Nutzergemeinschaft und Gespräche mit Jason Evans, dem Erfinder von jemalloc. In der Folge wollte Meta nicht nur den Code aufräumen, sondern auch den Huge-Page Allocator (HPA) verbessern, die Speichereffizienz steigern und die Performance auf Systemen mit 64-Bit-ARM-Prozessoren optimieren.

Dieses Vorhaben manifestiert sich in der nun veröffentlichten Version 5.3.1. Obwohl sich damit die Versionsnummer nur an der letzten Stelle erhöht, flossen über 390 Commits ein. Dementsprechend lang ist die Liste mit den Änderungen.

Unter anderem unterstützt jemalloc jetzt pvalloc und offeriert mallctl-Schnittstellen. Die maximale Tiefe des Stacks lässt sich über die Option „prof_bt_max“ zur Laufzeit vorgeben, beim Compilieren schwenkt „–enable-force-getenv“ zu „getenv“ anstelle von „secure_getenv“ um.

jemalloc arbeitet zudem besser mit neueren Compilern und wieder komplett mit C99 zusammen. „VARIABLE_ARRAY“ ist kompatibel zu Compilern, die kein SLA beherrschen, wie etwa der Visual Studio C-Compiler in den Modi für C11 und C17. „JEMALLOC_CXX_THROW“ unterstützt neuere C++-Versionen als C++17. Auf Aarch64-Systemen liegt die Standard-Page-Größe ab sofort bei 64 KByte.

Abschließend gab es zahlreiche kleinere Optimierungen. So arbeitet etwa „edata_cmp_summary_comp“ flotter, obendrauf gibt es einen überarbeiteten TCACHE Garbage Collector.

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben