Ну, это действительно зависит от того, что вы подразумеваете под «размером» экземпляра. В памяти есть размер одного объекта, но вам обычно нужно подумать о любых объектах, на которые ссылается корневой объект. Вот сколько памяти может восстановить после того, как корень получит право на сборку мусора ... но вы не можете просто добавить их, так как на эти объекты может ссылаться несколько других объекты, и действительно, могут быть повторяющиеся ссылки даже внутри одного объекта.
В этом блоге показан некоторый код, который я использовал ранее для определения размера необработанных объектов (заголовок + поля), без учета каких-либо дополнительных затрат из-за объектов, на которые ссылается один объект. Это не то, что я бы использовал в производственном коде, но это полезно для экспериментов с тем, насколько велик объект в различных условиях.