Opengl 过了一会儿,glGenBuffers变得非常慢

Opengl 过了一会儿,glGenBuffers变得非常慢,opengl,libgdx,lwjgl,Opengl,Libgdx,Lwjgl,我正在为我的简单2D游戏编写一个游戏内编辑器,其中网格经常被动态创建和移除。我正在使用libgdx 除了编辑器变慢之外,一切都正常。它对输入事件的响应非常晚 为了找到代码中的弱点(在atm上根本没有优化),我运行了jprofiler并分析了CPU。事实证明,glGenBuffers在2秒内完成了14次调用!即7个网格,每个网格有一个顶点和索引缓冲区。事实上,我有一个相当快的机器(i7-4790T,GTX980m,16GB…),所以这应该不是这里的问题 我只是想知道这怎么可能,因为我不知道 前两条

我正在为我的简单2D游戏编写一个游戏内编辑器,其中网格经常被动态创建和移除。我正在使用libgdx

除了编辑器变慢之外,一切都正常。它对输入事件的响应非常晚

为了找到代码中的弱点(在atm上根本没有优化),我运行了jprofiler并分析了CPU。事实证明,glGenBuffers在2秒内完成了14次调用!即7个网格,每个网格有一个顶点和索引缓冲区。事实上,我有一个相当快的机器(i7-4790T,GTX980m,16GB…),所以这应该不是这里的问题

我只是想知道这怎么可能,因为我不知道


前两条评论是正确的。我正在重建场景的很大一部分,以检查它是否仍然存在(一般来说不是那么聪明)。如果它仍然存在,则无法处理重建的部分。仅正确更换了更换的零件。:/

正如注释1中所建议的,我使用jprofiler和分析内存发现了这个问题


我没有检查图形内存,但是没有其他方法,垃圾也在那里。

缓冲区总是存储在内存中。始终需要清理帧缓冲区、字节缓冲区等。

是否删除不再使用的缓冲区?仅根据症状,可能是内存泄漏。你能看看你的应用程序的总体内存使用情况,看看它是否在增加吗?只是想说明一下,缓冲区可能会保存在你的图形卡内存中,因此你可能无法看到你的RAM使用量增加。否则,您应该始终通过调用
glDeleteBuffers
来清理缓冲区。