神秘的 OpenGL/SDL 内存增长
Posted
技术标签:
【中文标题】神秘的 OpenGL/SDL 内存增长【英文标题】:Mystery OpenGL/SDL memory growth 【发布时间】:2010-03-20 17:52:27 【问题描述】:这是我使用 C++ 开发的第一个“游戏”,将 OpenGL 用于图形,将 SDL 用于应用程序。我的代码似乎可以工作,因为我能够创建一个功能性应用程序窗口并使用 Devil Texture 库完全加载和绘制纹理。问题出现在运行时。根据 Windows 任务管理器,我的内存使用量从 13,900 左右开始,但在 4 分钟左右后稳步增长到 15,000 左右,然后停止。这是正常的吗? Windows 任务管理器是不是查看内存的方式不准确?
【问题讨论】:
【参考方案1】:您的代码中可能存在一些内存泄漏,即未释放的指针……等等……
在 Linux 上,我会使用 Valgrind 在运行时检查这一点。我不确定 Windows 的等价物是什么。这个post 应该为您指明寻找等效工具的正确方向
干杯
【讨论】:
【参考方案2】:如果您在应用执行期间进行动态内存分配和解除分配,则可能是您正在对内存进行碎片化,并且只需要处理碎片周围的所有“slop”即可。
我之前使用过 http://www.fluidstudios.com/ 的 MMGR 包来跟踪我的内存使用情况。基本上,它允许您转储有关程序中所有分配的重要信息,因此您可以逐帧跟踪以查看发生了什么。
祝你好运。
【讨论】:
以上是关于神秘的 OpenGL/SDL 内存增长的主要内容,如果未能解决你的问题,请参考以下文章