【问题标题】:Where is this memory exception coming from?这个内存异常来自哪里?
【发布时间】: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 检查链接。

标签: java opengl 3d lwjgl


【解决方案1】:

如果您使用的是 eclipse,请尝试增加 eclipse 堆大小,然后再次尝试。 JVM 不允许将整个 RAM 放入堆中。

How to increase application heap size in Eclipse?

【讨论】:

  • 是的,我是在看到 Willmore 的评论后才完成的。像魅力一样工作,现在我实际上可以看到问题所在。有些字段是散乱的(即使它们应该被剔除也会被渲染)。
猜你喜欢
  • 2019-07-14
  • 2017-06-04
  • 2021-11-14
  • 1970-01-01
  • 1970-01-01
  • 2013-03-13
  • 1970-01-01
  • 1970-01-01
  • 2016-01-01
相关资源
最近更新 更多