jemalloc 5.3.1

Po prawie czteroletniej przerwie (zobacz "jemalloc wszystko») nastąpiło wydanie wersji 5.3.1 alokatora jemallok – implementacja malloc(3) kładąca nacisk na zapobieganie fragmentacji i obsługę skalowalnej współbieżności.

Nowa wersja obejmuje ponad 390 zmian, w tym poprawki błędów, nowe funkcje, optymalizacje wydajności i ulepszenia przenośności.

Projekt został napisany w języku C i rozpowszechniany na licencji BSD.

Nowe funkcje:

  • Wsparcie dla pvalloc(3).
  • wykryto podwójne zwolnienie podczas kompilacji debugowej;
  • Dodano opcję kompilacji --enable-pageid umożliwiającą włączenie adnotacji mapowanych w pamięci.
  • Dodano parametr czasu wykonania prof_bt_max w celu kontrolowania maksymalnej głębokości stosu na potrzeby profilowania;
  • Dodano opcję kompilacji --enable-force-getenv w celu użycia getenv zamiast secure_getenv;
  • Dodano opcję kompilacji --disable-dss w celu wyłączenia użycia sbrk(2);
  • Dodano opcję kompilacji tcache_ncached_max w celu kontrolowania liczby elementów w pamięci podręcznej wątku.
  • Dodano parametr czasu wykonania calloc_madvise_threshold w celu ustalenia, czy do zerowania przydzielonych bloków pamięci podczas wywoływania calloc używane jest jądro czy memset;
  • Dodano opcję kompilacji --disable-user-config, która umożliwia wyłączenie odczytywania konfiguracji z pliku /etc/malloc.conf lub ze zmiennej środowiskowej MALLOC_CONF w czasie wykonywania.
  • Dodano parametr środowiska wykonawczego disable_large_size_classes, aby włączyć nowy dostępny algorytm obliczania rozmiaru, który minimalizuje obciążenie pamięci podczas przydzielania dużych bloków pamięci, tj. o rozmiarze >= 4 * STRONA;
  • Włączono użycie process_madvise i dodano parametr środowiska wykonawczego process_madvise_max_batch w celu kontrolowania maksymalnej liczby obszarów pamięci w każdym „partii” madvise;
  • Dodano interfejsy mallctl:
    • opt.prof_bt_max;
    • arena.
    • thread.tcache.max, aby zmienić i pobrać tcache_max bieżącego wątku;
    • thread.tcache.ncached_max.write i thread.tcache.ncached_max.read_sizeclass do zmiany i pobrania ncached_max bieżącego wątku;
    • arenas.hugepage zwraca użyty rozmiar hugepage, eksportowany również do malloc stats;
    • approx_stats.active, aby uzyskać przybliżoną wartość bieżącej liczby aktywnych bajtów. Nie należy jej porównywać z innymi pobranymi statystykami.
  • Naprawiono wiele błędów i poprawiono dokumentację.

Źródło: linux.org.ru

Kup niezawodny hosting dla stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron internetowych z ochroną DDoS, serwery VPS VDS | ProHoster