2

DDMS は、オブジェクト (つまり、空のオブジェクト) の最小サイズが [VM ヒープ] タブで 16 バイトであることを示しています。しかしstruct Object、dalvik のソース コードでは 8 バイトしかありませんvm/oo/Object.h。なぜ違いがあるのですか?それはアライメントの問題とどのように関連していますか?

4

1 に答える 1

4

簡単な答え: オブジェクト (クラス ポインター + ロック ワード) の 8 バイトのオーバーヘッドに加えて、基礎となる dlmalloc ベースのヒープ割り当てメカニズムの 4 または 8 バイトのオーバーヘッド。すべてのオブジェクトは 8 バイトの境界で整列されるため、12 バイトのオブジェクトには 4 バイトのパディングがあります。

長い答え

于 2013-08-27T20:30:23.880 に答える