在我的任何问题/解释之前,如果我在问题标题中不清楚,请原谅我。
我刚刚开始使用可以从Microsoft网站下载的CLRProfiler 64位,我正在尝试调查我的应用程序分配了多少字节,以及GC在每一代中收集了多少字节,以及最终结果在堆上结束。
我已经使用了几分钟的应用程序,然后我从CLRProfiler生成了报告。
我已经获得了我在这里要求的所有信息Clrprofile summary
然而,问题是我想知道或者更理解,如果整个应用程序中的对象分配逻辑导致如此巨大的最终堆结果是一件坏事或......或者它是否取决于像保持循环引用(a和b有一个c的引用,一个已发布的c引用,但GC不能收集b,因为它仍然被引用)或者我如何分配一些等于X字节和最终堆大小的对象比X大得多还是我没有正确理解堆分配?
有关如何评估我是否正在处理分配以及我的堆大小是否正确的任何指导?
我知道我缺乏提出具体问题的指示,但请问您是否需要更多详细说明。
修改
我做了一件非常愚蠢的事情,我在应用程序终止之前生成了报告,反过来,可能没有计算分配的字节数,我在终止应用程序后重新生成,结果似乎更有意义现在
但是我的问题仍然有效,我想,任何帮助提供更多的分配与最终堆大小的理解都将受到赞赏。