我正在用Java编写3D应用程序。我正在加载每个包含大约65000个顶点的字段。这些字段可以翻译,旋转等。当字段滚出截头锥体时,它会被剔除,VBO被清除,元素数组存储在内存缓冲区中。我缓冲了这些字段中的最多5个。不止于此,他们开始提交文件。
当我点击8个可见字段(520000)顶点时,程序会因系统内存不足而崩溃。我以为我的gpu内存超载但是使用GPU Shark我可以看到它只能达到25%左右。我的系统有8GB的RAM,通过任务管理器查看内存使用情况几乎无法注册。它占51%左右。那么我用光了什么?
我使用Concurrent Hashmaps来存储我的顶点数据。我没有在不使用时明确销毁/取消它们,但之前从未引起过问题。
我正在通过LWJGL使用OpenGL库。
答案 0 :(得分:2)
如果您正在使用eclipse,请尝试增加eclipse堆大小,然后再尝试一下。 JVM不允许整个RAM到堆中。