Skip to content
Tech AI Wire

Jemalloc 5.4.0、Metaの再投資後に160超のコミット

Metaが再投資を表明して以降で初のjemalloc(ジェマロック)リリースは、160を超えるコミット、新しいOS抽象化層、CPUごとのarena選択を含みます。

著者 Tech AI Wire Team

3 分で読めます

黒い放熱板を付けたサーバー用メモリモジュール4枚が、灰色の背景の上に縦に並んで立っている写真。

数字で見る

commits in the 5.4.0 release
160+
developers credited in the release notes
13

Jemalloc 5.4.0は2026年9月17日に公開され、13人の開発者による160を超えるコミットを含みます。リリースノートはこれを整理のためのリリースと説明しており、そこが要点です。jemallocは何年もほとんど動いていませんでした。Metaは今年、このプロジェクトへ再び投資すると表明しています。

メモリアロケータは、プログラムが要求したときにメモリを渡すコードです。Cのmalloc呼び出しも、その上に築かれた言語のヒープ確保も、すべてどれかのアロケータを通ります。jemallocは、標準のアロケータがメモリを断片化させたり、多数のスレッドで遅くなったりするときに、サーバーが選ぶ代替です。Phoronixは、サーバーや高性能計算の用途で人気が続いており、デスクトップでもいくらか使われていると伝えています。

5.4.0で変わったこと

変更内容
160超のコミットによる整理リファクタリング、不具合修正、テスト網羅の拡大、ビルドオプションの整理
新しいOS抽象化層プラットフォーム固有のコードを1つの境界の内側へ
フロントエンドのモジュール化入口を、より小さく分けられる部品へ分割
CPUごとのarena選択thread.arenaにより、スレッドがCPUに合わせてarenaを選べる
EXTENT_ALLOC_FLAG_PINNED独自のextentフックで、返却できないマッピングを印付け
GCC 16の警告修正最新のコンパイラで警告なくビルド

抽象化層が最大の構造変更です。オペレーティングシステムごとに異なる部分をまとめています。その一覧には、ファイルとプロセスの入出力、時刻、同期、CPUの扱い、仮想メモリ、fork処理、エラー処理、プロファイリング、スレッドの譲渡、設定の参照が含まれます。これらがコード全体に散らばるのではなく、1つの境界の内側に収まりました。

arenaはjemallocにおける分離の単位です。それぞれが自前のメモリのプールを持つため、別のarenaを使うスレッド同士は競合しにくくなります。CPUごとの選択とは、動作中のCPUに対応するarenaへスレッドを結び付けられるという意味です。使っているコアの近くにメモリを保てます。

extentフックはもう1つの高度なつまみです。共有マッピングやデバイス由来のメモリなど、組み込み側が用意したメモリをjemallocへ渡せます。新しいpinnedのフラグは、そうしたマッピングを決してシステムへ返してはならないとjemallocに伝えます。

整理のリリースがニュースである理由

リリースノートは、作業が「リファクタリング、不具合修正、テスト網羅の改善、オプション整理を含む技術的負債の解消」に集中したと述べています。これは機能一覧ではなく、そこが要点です。Phoronixが取り上げたMetaの再投資は、新機能の連発ではなく保守として現れました。

この順序は、このプロジェクトに再び依存するか判断する人にとって重要です。Redis、選択的に有効化するRustのプログラム、そして多くのデータベースやストレージのサーバーが、長年jemallocを同梱してきました。機能だけを受け入れるプロジェクトは、次の移植を苦しくするプラットフォーム固有の例外を積み上げます。

これが開発者にとって意味すること

すでにjemallocをリンクしているなら、5.4.0は騒がしくない、試す価値のある更新です。ベンチマーク一式ではなく自分の負荷で試してください。アロケータの挙動は、確保サイズやスレッド数に左右され、それを知っているのは自分のアプリケーションだけです。スループットだけでなく、常駐メモリと末尾の遅延を見てください。

あまり一般的でないプラットフォームへの移植を保守しているなら、まずOS抽象化層を読んでください。以前は散在する#ifdefに置かれていたプラットフォーム依存のコードに、行き先が1つできました。本体外のパッチは小さくなり、持ち運びやすくなるはずです。

CPUごとのarenaの選択肢は、コア数の多い機械で測る価値があります。多くのスレッドが同時に確保し、アロケータのロックが詰まりになるときに最も効きます。効果を前提にせず測定し、現在のarena数と比べてください。

最後に、GCC 16の警告修正は自分のビルドへの合図として受け取ってください。ディストリビューションはこのコンパイラへ移りつつあり、大きく警告を出す依存は、後で厳格なビルドを壊します。

出典

  1. Release 5.4.0 - GitHub
  2. Jemalloc 5.4 Released With Portability Improvements, Code Cleanups - Phoronix

関連記事