gpt4 book ai didi

c# - 如何查看一次垃圾回收的内容?

转载 作者:行者123 更新时间:2023-11-30 13:02:08 24 4
gpt4 key购买 nike

有什么办法可以查看垃圾内容?

基本上我能够看到,当我有一个 GC 尖峰时,已经收集了 1200 个这样那样类型的对象,所以也许我可以首先识别和重构以避免垃圾处理。

这是在 Unity(Mono 环境)中,所以我不能使用任何重型工具,如 Ants Memory Profiler,甚至 Mono HeapShot,因为我无法控制可执行文件的启动方式。

我读过有关 GC 通知的信息,但它们似乎并未包含在 Mono Unity 正在使用的版本中,而且无论如何我认为它不会提供我想要的详细程度(会吗? ).

有什么想法吗?

最佳答案

现在,不,您无法获取当前正在收集的内容。最重要的是,即使你可以,也已经太晚了,因为 GC 只对已经处理掉的对象起作用。毕竟,GC 会处理不再被引用的对象。

您不应该有“GC 尖峰”,因为 GC 通常足够智能,不会成为集合中所有内容的瓶颈。最重要的是,除非被告知,否则 GC 很少“立即”收集数据。

如果出于某种原因你可以证明 GC 确实是一个性能问题,你可以创建一种预收集器,你可以在其中存储你确定要离开的项目,它会以较慢的速度释放它们的引用,并且会手动调用它们的 GC。

关于c# - 如何查看一次垃圾回收的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16218043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com