GC


Luaは自動的にメモリを管理する ガベージコレクタ を時々実行することで、自動的にメモリを管理する Luaはインクリメンタルマークアンドスイープコレクタを実装している ガベージコレクタ停止値 と ガベージコレクタステップ係数 を使うことができる -> usr が調整可能.


ガベージコレクションメタメソッド


ユーザーデータにガベージコレクタメタメソッドを設定する. ( hook みたいなもの ? ) 使う目的: [ Lua GC を 外部のリソースに利用ささせる. ] -> 独自に確保した work を解放する. -> finalizer と呼ばれる. メタテーブルに __gc フィールドをもつ, usrdata に以下の関数相当のことをする. function gc_event (udata) local h = metatable(udata).__gc if h then h(udata) end end