记录一次C++内存泄露的检测过程
线上游戏长时间运行后, 占用内存比以前大很多, 发现游戏对象也得变多很多.主程尝试从最近改动过的代码检测, 做了小改动, 更新上线, 内存还是不断增加.
我提出用服务端根据聊天做个GM命令, 输出当前对象个数信息到日记. 更新上线, 手动输入gm命令, 比较几次日记, 方现对象是变多, 但不知道是哪个, 我修改输出内容, 按类型输出对象个数, 后面比较发现buff对象明显增多.
因为最近策划配置了很多dot的buff. 再修改日记输出信息, 如果是buf类型, 输出主人是否为空, 及主人的id,
后面内网测试, 发现多出来的buff的主人为空, 主人已经释放, buff对象没释放, 检测buff处理逻辑, 发现有一段buff从队列中取出, 但最后没释放, 加了一行buff->Dispose(); 后就解决了
分类:
C++
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义