有没有办法查看垃圾的内容?
基本上,我能够看到,当我有一个GC峰值时,ok 1200个这样或那样类型的对象已经被收集,所以也许我可以识别和重构,以避免垃圾处理。
这是统一(单声道环境),所以我不能使用任何重型工具,如蚂蚁内存分析器,甚至单声道HeapShot,因为我不能控制如何启动可执行文件。
我读过GC通知,但它们似乎没有包含在Mono Unity正在使用的版本中,而且我认为它不会给我提供我想要的详细程度(是吗?)。
有什么想法吗?
发布于 2013-04-26 00:29:38
现在,不,您不能获取当前正在收集的内容。最重要的是,即使你能做到,也已经太晚了,因为GC只作用于已经释放的对象。毕竟,GC处理的是不再被引用的对象。
你不应该有一个"GC尖峰“,因为GC通常足够智能,不会对集合上的所有东西造成瓶颈。最重要的是,除非被告知,否则GC很少“立即”收集数据。
如果出于某种原因,你可以证明GC确实是一个性能问题,你可以创建一种预收集器,在那里你可以存储你确定要删除的项,它会以较慢的速度释放它们的引用,并手动调用GC。
https://stackoverflow.com/questions/16218043
复制相似问题