Zephus 发表于 2022-6-21 10:37

Unity Mono内存管理策略

Mono内存分为两部分,已用内存(used)和堆内存(heap),已用内存是指mono实际要使用的内存,堆内存是mono向操作系统申请的内存。
既然mono已经有了完善的GC机制,那是否还会有内存泄漏呢?答案是肯定的,只是此处的内存泄漏需要重新定义一下,我们把对象已经不再需要使用,却没有被GC回收的情况成为mono内存泄漏。游戏中大部分mono内存泄漏情况都是由于静态对象引用引起的,因此对于静态对象的使用要特别注意,尽量少用静态对象,对于不再需要的对象将其引用设置为null。
对于mono内存泄漏,一般只能通过猜测+不断修改代码测试方法修复问题,效率很低,腾讯Wetest平台的Cube工具提供了mono内存快照对比功能,并包括对象分配堆栈,对象引用关系等详细信息,是定位mono内存泄漏问题一大利器。
Webtest工具现在提供免费使用(实测已经不再对外开放)
体验地址:http://wetest.qq.com/cube
关于测试报告问题:http://wetest.qq.com/guide/view/?id=267
使用帮助:http://wetest.qq.com/guide/view/?id=266
常见问题:http://wetest.qq.com/guide/view/?id=268
页: [1]
查看完整版本: Unity Mono内存管理策略