% ACE‑Alloc: Agentic Context Engineering for Runtime‑Adaptive Small‑Object Allocation % Authors: (TBD) % Draft v0.1 — 2025‑11‑02 概要(Abstract) 本論文は、Agentic Context Engineering(ACE)をメモリアロケータに適用し、実運用に耐える低オーバーヘッドの学習層を備えた小型オブジェクト向けアロケータ「ACE‑Alloc」を提案する。ACE‑Alloc は、観測(軽量イベント)、意思決定(cap/refill/trim の動的制御)、適用(非同期スレッド)から成るエージェント型最適化ループを実装しつつ、ホットパスから観測負荷を排除する TLS バッチ化を採用する。また、標準 API 互換の free(ptr) を保ちながら per‑object ヘッダを削除し、スラブ末尾の 32B prefix メタデータにより密度劣化なく即時判定を実現する。実験では、mimalloc と比較して Tiny/Mid における性能で優位性を示し、メモリ効率の差は Refill‑one、SLL 縮小、Idle Trim の ACE 制御により縮小可能であることを示す。 1. はじめに(Introduction) - 小型オブジェクトの高速割り当ては、多くのアプリケーションにとって主要な性能決定因子である。 - 既存の高速アロケータは、性能とメモリ効率のトレードオフに直面する。エージェント型の制御(ACE)により、ワークロードに追従した動的最適化を可能にする。 - 本論文の貢献: - ACE(Agentic Context Engineering)をメモリアロケータに実装し、低オーバーヘッドで動作させる設計(TLS バッチ化、非同期適用)。 - 標準 API に準拠しながら per‑object ヘッダを排し、スラブ末尾 32B prefix で即時判定を実現する設計。 - 性能/メモリのスイートスポット探索(Refill‑one、SLL 縮小、Idle Trim/Flush)と評価。 2. 背景(Background) - メモリアロケータの基礎(小型クラス、TLS キャッシュ、スラブ/スーパー・スラブ)。 - mimalloc などの関連実装の要点(ページ記述子、低メタデータ、局所性)。 - Agentic Context Engineering(ACE)の要旨:観測→意思決定→適用のエージェント型ループを、ホットパスを汚染せず実装する考え方。 3. 設計(Design of ACE‑Alloc) - 目標: - ホットパスの命令・分岐・メモリアクセスを最小化(ゼロに近い)。 - 標準 API 互換(free(ptr))とメモリ密度の維持。 - 学習層は非同期・オフホットパスで適用。 - キー設計: - TLS バッチ化(alloc/free の観測カウンタは TLS に蓄積、しきい値到達時のみ atomic 反映)。 - 観測リング+背景ワーカー(イベントの集約とポリシ適用)。 - スラブ末尾 32B prefix(pool/type/class/owner を格納)により per‑object ヘッダを不要化。 - Refill‑one(ミス時 1 個だけ補充)と SLL 縮小、Idle Trim/Flush のポリシ。 4. 実装(Implementation) - 主要コンポーネント: - Prefix メタデータ: `core/hakmem_tiny_superslab.h/c` - TLS バッチ&ACE メトリクス: `core/hakmem_ace_metrics.h/c` - 観測・意思決定・適用(INT エンジン): `core/hakmem_tiny_intel.inc` - Refill‑one/SLL 縮小/Idle Trim の適用箇所。 - 互換性と安全性:標準 API、LD_PRELOAD 環境での安全モード、Remote free の扱い(設計と今後の拡張)。 5. 評価(Evaluation) - ベンチマーク:Tiny Hot、Mid MT、Mixed(本リポジトリ同梱)。 - 指標:スループット(M ops/sec)、帯域、RSS/VmSize、断片化比(オプション)。 - 比較:mimalloc、システム malloc。 - アブレーション: - ACE OFF 対比(学習層無効)。 - Refill‑one/SLL 縮小/Idle Trim の有無。 - Prefix メタ(ヘッダ無し) vs per‑object ヘッダ(参考)。 6. 関連研究(Related Work) - 既存アロケータ(mimalloc、jemalloc など)。 - 動的最適化・学習型手法(エージェントベースの最適化)。 7. 考察・限界(Discussion & Limitations) - Idle Trim の即時 RSS への効き方(短時間測定 vs 長時間)。 - Remote free 多発時の設計トレードオフ(将来の安全なリモートキュー)。 - MT スケール時のスラブ粒度と ACE ポリシのチューニング。 8. 結論(Conclusion) - ACE‑Alloc は、ホットパスのオーバーヘッドを極小化しつつ、学習層によって動的にメモリ効率と性能のスイートスポットを探索できる実装である。今後は、長時間の断片化評価と MT スケール最適化を進める。 付録 A. Artifact(再現手順) - ビルド(メタデフォルト): ```sh make bench_tiny_hot_hakmem ``` - Tiny(性能): ```sh ./bench_tiny_hot_hakmem 64 100 60000 ``` - Mixed(性能): ```sh ./bench_random_mixed_hakmem 2000000 400 42 ``` - メモリ重視モード(推奨プリセット): ```sh HAKMEM_MEMORY_MODE=1 ./bench_tiny_hot_hakmem 64 1000 400000000 HAKMEM_MEMORY_MODE=1 ./bench_random_mixed_hakmem 2000000 400 42 ``` - スイープ計測(短時間のCSV出力): ```sh scripts/sweep_mem_perf.sh both | tee sweep.csv ``` - 平均推移ログ(EMA): ```sh HAKMEM_TINY_OBS=1 HAKMEM_TINY_OBS_LOG_AVG=1 HAKMEM_TINY_OBS_LOG_EVERY=2 HAKMEM_INT_ENGINE=1 \ ./bench_random_mixed_hakmem 2000000 400 42 2>&1 | less ``` 謝辞(Acknowledgments) (TBD)