約4年の休止期間を経て(参照「ジェマロックのすべてアロケータのバージョン5.3.1がリリースされました。 ジェマロック – 断片化防止とスケーラブルな並行処理のサポートを重視した malloc(3) の実装。
今回の新リリースには、バグ修正、新機能追加、パフォーマンス最適化、移植性向上など、390件以上のコミットが含まれています。
このプロジェクトはC言語で記述されており、BSDライセンスの下で配布されています。
新しい機会:
- pvalloc(3) のサポート。
- デバッグビルドで二重解放が検出されました。
- メモリマップド注釈を有効にするコンパイルオプション「--enable-pageid」を追加しました。
- プロファイリングの最大スタック深度を制御するためのランタイムパラメータprof_bt_maxを追加しました。
- secure_getenvの代わりにgetenvを使用するためのコンパイルオプション--enable-force-getenvを追加しました。
- sbrk(2)の使用を無効にするコンパイルオプション「--disable-dss」を追加しました。
- スレッドキャッシュ内のアイテム数を制御するためのコンパイルオプションtcache_ncached_maxを追加しました。
- calloc呼び出し時に、割り当てられたメモリブロックをゼロクリアするためにカーネルまたはmemsetのどちらを使用するかを決定する実行時パラメータcalloc_madvis_thresholdを追加しました。
- コンパイル時に、/etc/malloc.conf ファイルまたは MALLOC_CONF 環境変数からの設定の読み込みを無効にする --disable-user-config オプションを追加しました。
- 実行時パラメータ disable_large_size_classes を追加し、新しい利用可能なサイズ計算アルゴリズムを有効にしました。これにより、大きなメモリブロック(サイズが 4 * PAGE 以上)を割り当てる際のメモリオーバーヘッドが最小限に抑えられます。
- process_madvise の使用を有効にし、各 madvise "batch" 内のメモリ領域の最大数を制御するためのランタイム パラメータ process_madvise_max_batch を追加しました。
- mallctlインターフェースが追加されました:
- opt.prof_bt_max;
- arena.
- thread.tcache.max を変更して、現在のスレッドの tcache_max を取得します。
- thread.tcache.ncached_max.write と thread.tcache.ncached_max.read_sizeclass を変更し、現在のスレッドの ncached_max を取得します。
- arenas.hugepage は、使用されている hugepage サイズを返します。このサイズは malloc の統計情報にもエクスポートされます。
- approximate_stats.active は、現在アクティブなバイト数の概算値を取得します。この値は、他の取得した統計情報と比較しないでください。
- 多くのバグが修正され、ドキュメントも改善されました。
出所: linux.org.ru
