Strange memory behaviour

This is nice and informative post, although I’m bit not sure about gpu/vm leaks as I see everything returns to old state soon as I kill the process. Nevertheless it’s matter of few lines to add the unload into my implementation, so I might do that just in case it’s up to OS/drivers/anything in the world.

Currently in my implementation I keep array of ContentItems, each of them having object reference (+ other stuff like id, type etc). On the first attempt of getting the stored object, it is getting loaded and then stays there until unload gets called. In unload I call Dispose and set reference back to null (so next it time it will load again).
If I want memory chart to look nice I also call GC.Collect at that point, otherwise it’s bit random. I know it should be limited somehow but for now I don’t have big enough project to bother with it (but keeping it in mind).

Just as I was writing this I started to think that entire “issue” with old project and different memory behaviour depending on place of loading might be not related to Texture2D itself, but to garbage collection.
So I put GC.Collect right after loading… And yeh, now it doesn’t matter which class loads it…