I try to serialize a .NET object. 

In one situation, the serialization of that object takes a lot of time. In other, the same serialization of the same (or almost the same) object, goes very quickly...

I try to understand why. I tried to consult the count of "main" object collections, but they displayed me the same result... 

I can't manually test ALL the collections counters. I just want to figure out what "part" of my object dramatically changes in "size" before each serialization.

Say, I have a `House`. I the `House` I have `People` collection. I have also `Rooms` collection, `Pets` collection, etc.

I have a lot of actions, `PersonGotOut`, `PetCameIn`, etc. I serialize the object before each action (to be able to Undo-Redo my actions).

After an action, say `PersonChangeRoom` the serialization time grows dramatically, but I see that `Person`'s collection count remains unchanged.

So, my question is how to "detect" such a "object leaks", or how to count how many references or objects "controls" `MyHouse` each time?