Slide 32
Slide 32 text
ZendMMに関連するC-‐‑‒API
• zend_̲mm_̲startup
• zend_̲mm_̲shutdown
• _̲zend_̲mm_̲alloc
• _̲zend_̲mm_̲free
• _̲zend_̲mm_̲realloc
zend_mm_mem_handlers
const
char
*name;
zend_mm_storage*
(*init)(void
*params);
void
(*dtor)(zend_mm_storage
*storage);
void
(*compact)(zend_mm_storage
*storage);
zend_mm_segment*
(*_alloc)(zend_mm_storage
*storage,
size_t
size);
zend_mm_segment*
(*_realloc)(zend_mm_storage
*storage,
zend_mm_segment
*ptr,
size_t
size);
void
(*_free)(zend_mm_storage
*storage,
zend_mm_segment
*ptr);
これらのAPIは直接扱うことは殆どなく、ZendEngineから利用さ
れる。zend_mm_mem_handlers型はzend_alloc.cに定義がある
mem_handlers[]に直接メモリハンドラを追加することで独自のメ
モリハンドラが利用できるようになる
(例えば、jemallocやtcmallocを組み込んだりできる。こういった
取り組みはkrakjoeやjpauliが試している)