jemalloc 5.3.1

Nach fast vierjĂ€hriger Pause (siehe „jemalloc alles“) wurde die Version 5.3.1 des Allocators veröffentlicht jemalloc – einer Implementierung von malloc(3), die besonderen Wert auf die Vermeidung von Fragmentierung und UnterstĂŒtzung skalierbarer ParallelitĂ€t legt.

Die neue Version umfasst ĂŒber 390 Commits mit Fehlerbehebungen, neuen Funktionen, Leistungsoptimierungen und Verbesserungen der PortabilitĂ€t.

Das Projekt ist in C geschrieben und wird unter der BSD-Lizenz vertrieben.

Neue Funktionen:

  • UnterstĂŒtzung von pvalloc(3).
  • Erkennung von doppelter Speicherfreigabe in der Debug-Build;
  • Eine Kompilierungsoption —enable-pageid wurde hinzugefĂŒgt, um die Annotation von zugewiesenem Speicher zu aktivieren.
  • Ein Laufzeiteinstellung prof_bt_max wurde hinzugefĂŒgt, um die maximale Tiefe des Profilerstellungs-Stacks zu steuern;
  • Eine Kompilierungsoption —enable-force-getenv wurde hinzugefĂŒgt, um getenv statt secure_getenv zu verwenden;
  • Eine Kompilierungsoption —disable-dss wurde hinzugefĂŒgt, um die Verwendung von sbrk(2) zu deaktivieren;
  • Eine Kompilierungsoption tcache_ncached_max wurde hinzugefĂŒgt, um die Anzahl der Elemente im Thread-Cache zu steuern.
  • Ein Laufzeiteinstellung calloc_madvise_threshold wurde hinzugefĂŒgt, um festzustellen, ob das Kernel oder memset zur Nullsetzung von zugewiesenen Speicherblöcken bei einem Aufruf von calloc verwendet wird;
  • Eine Kompilierungsoption —disable-user-config wurde hinzugefĂŒgt, um das Lesen von Konfigurationen zur Laufzeit aus der Datei /etc/malloc.conf oder aus der Umgebungsvariablen MALLOC_CONF zu deaktivieren;
  • Eine Laufzeiteinstellung disable_large_size_classes wurde hinzugefĂŒgt, um den Betrieb des neuen Algorithmus zur Berechnung der verfĂŒgbaren GrĂ¶ĂŸe zu gewĂ€hrleisten, der den Speicheraufwand bei der Zuweisung großer Speicherblöcke, d. h. mit einer GrĂ¶ĂŸe >= 4 * PAGE, minimiert;
  • Die Verwendung von process_madvise wurde aktiviert und eine Laufzeiteinstellung process_madvise_max_batch hinzugefĂŒgt, um die maximale Anzahl von Speicherbereichen in jedem „Batch“ madvise zu steuern;
  • Die mallctl-Schnittstellen wurden hinzugefĂŒgt:
    • opt.prof_bt_max;
    • arena.<i>.name zum Ändern und Abrufen der Namen der „Arenen“;
    • thread.tcache.max zum Ändern und Abrufen von tcache_max des aktuellen Threads;
    • thread.tcache.ncached_max.write und thread.tcache.ncached_max.read_sizeclass zum Ändern und Abrufen von ncached_max des aktuellen Threads;
    • arenas.hugepage zur RĂŒckgabe der verwendeten GrĂ¶ĂŸe der hugepage, auch in die malloc-Statistik exportierend;
    • approximate_stats.active zur Abfrage eines ungefĂ€hren Werts des aktuellen Volumens aktiver Bytes, der nicht mit anderen erhaltenen Statistiken verglichen werden sollte.
  • Es wurden auch viele Fehler behoben und die Dokumentation verbessert.

Quelle: linux.org.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster