Используйте Microsoft * CLR Profiler для .NET Framework 4 (бесплатно) в версии Windows для вашего проекта.
С помощью этого вы можете получить временную шкалу вашегоРаспределение памяти проекта.Или вы можете проверить саму кучу.Это дает вам список всего, что распределяется по типу.Вы, вероятно, увидите объект, который вы чрезмерно выделяете, оттуда вы можете вызвать график распределения для этого типа или этого диапазона времени.Это покажет, какие функции распределили эти объекты.
Вот случайная запись в блоге , в которой есть несколько снимков экрана и обсуждение CLR Profiler в действии.(Не совсем то, что вы будете делать с ним, но полезное введение, если вы никогда ранее не использовали CLR Profiler.)
Однако : потому что вы используете XNA, и вы обычнопридется действительно тяжело заставить C # исчерпать управляемую память, возможно, вам не хватает неуправляемой памяти.Есть ли где-то, что вы не звоните Dispose()
до того, как прекратите использовать созданный вами графический или звуковой объект?Я обсуждал детали этого пары раз .
Так что просто знайте, что, если у вас есть много очень маленьких объектов, обнаруженных в CLR Profiler- они могут фактически использовать огромное количество неуправляемой памяти.