首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PerfView GC触发原因

PerfView GC触发原因
EN

Stack Overflow用户
提问于 2012-10-16 17:15:51
回答 1查看 1.3K关注 0票数 4

我一直在调查一个c#服务器应用程序中的一些垃圾收集问题。我目前正在使用PerfView来做这件事。在收集了一些数据并获得了大量的GC统计数据后,我对其中一列的“触发原因”感到有点困惑。我得到两个值'AllocLarge‘和'AllocSmall’。我已经搜索了帮助和谷歌,但找不到这两个术语的确切含义。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-13 02:30:52

.NET GC对待大于85K的对象(大对象)的方式与对待其他对象(小对象)的方式非常不同。特别是,大型对象仅在“第2代”(最昂贵的GC类型)中收集。'AllocLarge‘表示在分配大对象时触发了GC (因此必须触发了第二代GC)。“AllocSmall”表示在响应“普通”对象的分配时发生的GC。

请注意,一般来说,拥有寿命较短的大对象是不好的(因为这些对象会强制使用昂贵的GC)。通过查看“GC Alloc”视图并查找伪帧“LargeObject”,您可以看到分配了大型对象的所有地方。双击它(这会把你带到'callers‘视图,然后你会看到你正在分配大对象的位置。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12911323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档