VTBL

C++では仮想関数を持つクラスは全て暗黙に仮想関数テーブルへのポインタを持つ。RTTIでは動的なクラスの判定をこのVTBLでしているらしい。
だが、あまりにも小さいクラスではこのVTBLのメモリ・オーバーヘッドが大きいのではないかと思うようになった。一般的な32bit環境では4byteも消費してしまう。クラス本体が4byteや8byteしかなかったら無視できない大きさだ。
でもJavaC#ではVTBLなしのクラスは作れなかったように思う。スクリプト言語ならなおさらだ。やはり前提とする動作環境が違いのだろうな。