【问题标题】:c# 3d Application memory allocationc# 3d 应用程序内存分配
【发布时间】:2016-07-06 06:59:01
【问题描述】:

您好,我正在开发一个 3D 应用程序并在加载屏幕上加载所有图像/模型,但是现在我的内存快用完了,我仍然需要在应用程序中放入更多模型。

任何关于我能做什么的建议请记住,在选择要添加到场景的模型时,我仍然需要应用程序快速(这就是我预加载图像/模型的原因)

图像是 dxt 格式,所以它们已经被压缩了。

我正在使用 VirtualAlloc 来分配内存并使用 VirtualFree 来释放内存(根据需要)。

非常感谢任何建议。

【问题讨论】:

  • 按照它的说法,你需要减少每个级别所需的模型数量..然后只按级别加载它们..

标签: c#


【解决方案1】:

好吧,获得更多内存。

说真的。用完?现代桌面的限制是 64gb ;)

管理内存是一项挑战。您只有 2 个选择:按需加载(您拒绝)并通过提供足够的内存来处理它。

真正受到限制的唯一方法是编写 32 位程序(由于 3gb 内存的硬限制,在 .NET 中实际上超过 2gb 会出现问题)。

【讨论】:

  • 这不准确。您还可以通过内存碎片耗尽内存。好消息是,如果您使用 .NET 4.5.1,您可以压缩大对象堆 (stackoverflow.com/a/27738768/16587)。发生这种情况时,您会看到相当多的口吃。但它会让你不会用完。
  • ^^谢谢,这有点帮助
  • 请注意,此答案在Low quality review 中已收到 3 个“看起来不错”和 3 个“推荐删除”
猜你喜欢
  • 2015-12-28
  • 2017-04-17
  • 1970-01-01
  • 2021-11-12
  • 2012-07-18
  • 2012-10-28
  • 2015-08-08
  • 2011-11-02
  • 2020-10-23
相关资源
最近更新 更多