我目前在最新版本的OS X上使用SDL2有一个相当小而简单的C ++应用程序。它唯一真正做的就是通过SDL_Renderer监听几个键盘事件并绘制一个未填充的白色方块。它使用lambdas来处理每个帧的“tick”和渲染。
当我开始运行这个程序时,XCode报告它几乎立即使用了大约14.5MB的内存。但随后内存使用量开始逐渐增加,随着时间的推移变慢。最终,几分钟后,它总共达到18MB,并且几乎停留在那里。有时它会达到18.1,但最终它会回落到18。
这种行为让我感到困惑,因为除了开头,我没有在我的代码中分配任何内容。使用新内存的唯一地方是在渲染lambda中在堆栈上分配SDL_Rect,在主循环中分配几个整数/浮点数。即使我没有通过键盘,鼠标等引发任何SDL_Events,也会发生这种情况。如果有人能提出任何关于为什么会发生这种情况的建议,我将不胜感激。
请注意,这似乎不是内存泄漏或任何危险,并且在很大程度上是一个学术问题,我想了解正在发生的事情的行为。如果你想让我把我的代码放在某处,我可以。