【发布时间】:2016-03-03 06:50:37
【问题描述】:
我正在用 Java 编写一个 3D 应用程序。我正在加载每个包含大约 65000 个顶点的字段。这些字段可以平移、旋转等。当字段滚动出截锥体时,它会被剔除,VBO 被清除,元素数组存储在内存缓冲区中。我最多缓冲 5 个这些字段。除此之外,他们开始归档。
当我点击大约 8 个可见字段 (520000) 顶点时,程序因系统内存不足而崩溃。我以为我的 gpu 内存超载了,但使用 GPU Shark 我可以看到它只达到了 25% 左右。我的系统有 8GB 的 RAM,通过任务管理器查看内存使用情况几乎没有记录。它约为51%。那我用完了什么?
我使用并发哈希图来存储我的顶点数据。我不会在不使用时明确销毁/取消它们,但这从未引起过问题。
我正在通过 LWJGL 使用 OpenGL 库。
【问题讨论】:
-
我猜“内存不足”来自 jvm。你的 -Xmx 设置是什么?对于 xmx,请参阅 stackoverflow.com/a/5374501/1737819
-
有没有办法增加配额?
-
@eric_the_animal 检查链接。