45

.NET のオブジェクトのメモリ オーバーヘッドはどれくらいですか? 私は任意の必要最小限のオブジェクトについて話している....内部の.NETの動作または参照のオーバーヘッド:

var obj = new System.Object();

obj はヒープ内でどのくらいのスペースを占めていますか?

4

1 に答える 1

53

これについては、ブログ記事「メモリと文字列について」で説明しています。これは実装によって異なりますが、Microsoft .NET CLR v4 の場合、x86 CLR のオブジェクトあたりのオーバーヘッドは 8 バイトで、x64 CLR のオブジェクトあたりのオーバーヘッドは 16 バイトです。

ただし、最小サイズはそれぞれ 12 バイトと 24 バイトです。有用な情報を保存し始めると、最初の 4 バイトまたは 8 バイトが「空き」になるだけです :)

(詳細については、ブログ投稿を参照してください。)

于 2012-05-18T15:54:35.443 に答える