XNA游戏可以使用超过1.5GB的RAM而不会崩溃吗?

时间:2012-07-28 16:42:53

标签: memory xna out-of-memory

我想知道是否可以将大量纹理加载到内存中以进行XNA游戏,而不会以某种方式消除内存异常。

特别是在运行时从文件流中加载纹理。

1 个答案:

答案 0 :(得分:5)

这样做是一个可怕的想法,其原因与可寻址系统内存的数量无关(正如您所指出的那样,XNA是32位库,因此限制在2GB左右)

为了渲染,必须将纹理加载到图形卡上的视频内存中。目前,高端桌面显卡大约有2-3GB;低端和中端卡的数量要少得多。此内存不仅用于纹理,还用于视频卡上存在的所有对象,例如顶点缓冲区。如果您没有以独占模式运行,则可能会在多个应用程序之间共享此内存。超过可用视频内存量会因交换而导致性能显着下降。

如果你真的想要填充那个视频缓冲区(比如,你正在为AAA游戏编写一个超高端的图形模式),你必须采用一些先进的内存寻址技术, Win32 API或将纹理加载到图形设备中,而无需在系统内存中保留副本。这些技术超出了XNA的范围。