Phase 1 完了:環境変数整理 + fprintf デバッグガード ENV変数削除(BG/HotMag系): - core/hakmem_tiny_init.inc: HotMag ENV 削除 (~131 lines) - core/hakmem_tiny_bg_spill.c: BG spill ENV 削除 - core/tiny_refill.h: BG remote 固定値化 - core/hakmem_tiny_slow.inc: BG refs 削除 fprintf Debug Guards (#if !HAKMEM_BUILD_RELEASE): - core/hakmem_shared_pool.c: Lock stats (~18 fprintf) - core/page_arena.c: Init/Shutdown/Stats (~27 fprintf) - core/hakmem.c: SIGSEGV init message ドキュメント整理: - 328 markdown files 削除(旧レポート・重複docs) 性能確認: - Larson: 52.35M ops/s (前回52.8M、安定動作✅) - ENV整理による機能影響なし - Debug出力は一部残存(次phase で対応) 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
1.4 KiB
1.4 KiB
Tiny P0 Batch Refill — 運用ガイド(デフォルトON)
概要
- TinyのSuperslab→TLS(SLL)補充をバッチ化して分岐・書き込み・メモリアクセスを削減し、スループットを向上します。
- 本リポジトリではデフォルトON(ビルド時: HAKMEM_TINY_P0_BATCH_REFILL=1、実行時: 既定ON)。
利点
- 1回のdrain / 1回のSLL splice / まとめたactive加算で負荷削減
- 連続carveでキャッシュ効率が高い
既知の注意点(監査継続)
- カウンタ不整合の警告([P0_COUNTER_MISMATCH])が残存する場合がありますが、致命的ではありません。監査継続中。
ランタイムA/Bスイッチ
- 2025-12 cleanup: ランタイム環境変数トグルは削除。P0はビルド時
HAKMEM_TINY_P0_BATCH_REFILLが 1 のときだけ有効。 - 直詰め(P0→FC): C5のみ既定ON。C7/all 直詰めは無効化済み(固定挙動)。
- Remote drain: しきい値64で常時drain(無効化トグルは廃止)。
- P0ログ: 無効化済み(元
HAKMEM_TINY_P0_LOG)。
ベンチ指標(例)
- P0 OFF: ~2.73M ops/s(100k×256B, 1T)
- P0 ON: ~2.76M ops/s(同条件, 最速)
実装の主な場所
- 本体: core/hakmem_tiny_refill_p0.inc.h(sll_refill_batch_from_ss)
- ヘルパ: core/tiny_refill_opt.h(trc_*)
- Remote drain: core/superslab/superslab_inline.h(_ss_remote_drain_to_freelist_unsafe)