メモリ管理 #2
(1)
- AMemAlc0 (シンプルなメモリアロケータ:サイズは固定)
- AMemAlc1 (サイズ指定できるメモリアロケータ)
- AMemAlcSys (malloc, freeを呼ぶだけのメモリアロケータ:サイズは固定)
- AClean (freeやデストラクタの呼び出しを自動化)
(2)
- AMemAlc0 (シンプルなメモリアロケータ:サイズは固定)
- init時に決めたサイズのメモリを管理する。手持ちのメモリがなくなると、親のアロケータを呼び出してメモリを補充する。
- void AMemAlc0_init()
- void AMemAlc0_deinit()
- 未返却のメモリが一つでもあるとdeinitできない(ADBGLV>=1のとき、実行時エラーとなる)。
- void *AMemAlc0_alc()
- void AMemAlc0_fre()
- AMemAlc1 (サイズ指定できるメモリアロケータ)
- void AMemAlc1_init()
- 8, 16, 32, 64, ..., 1Gの合計28個のAMemAlc0を持っていて、要求サイズに応じてアロケータを切り替えてメモリ管理を実現。
- void AMemAlc1_init()
- void AMemAlc1_deinit()
- 未返却のメモリが一つでもあるとdeinitできない(ADBGLV>=1のとき、実行時エラーとなる)。
- void *AMemAlc1_alc()
- void AMemAlc1_fre()
- AMemAlc0 *AMemAlc1_getAlc() (サイズを指定すると対応するアロケータを返す)
- void AMemAlc1_report() (現在の利用状況を画面などに出力する)