0

如果我使用 Slick-Util 将纹理加载到 LWJGL 中,它会使用大量 RAM。这是控制台输出的示例:

Message.info ((Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / 1000000 + "MB");
TextureManager.loadTexture("gui.wallpaper", "resources/wallpaper.jpg");
Message.info ((Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / 1000000 + "MB");

“TextureManager.loadTexture(...)”方法如下:

String textureFileFormat;
if (thePath.contains("png")) {
    textureFileFormat = "PNG";
} else if (thePath.contains("jpg")) {
    textureFileFormat = "JPG";
} else if (thePath.contains("jpeg")) {
    textureFileFormat = "JPG";
} else {
    textureFileFormat = "PNG";
}

theTexture = TextureLoader.getTexture(textureFileFormat, new FileInputStream(thePath), true);

// === Store it onto the HashTable === //
textures.put(theName, theTexture);

这使用(如在控制台输出中可见)退出 80 MB。为什么?“wallpaper.jpg”只有290KB!

怎么了?

这是控制台输出:

2013-09-24 21:32:40 [INFO] [CLIENT] 4MB
Tue Sep 24 21:32:40 CEST 2013 INFO:Use Java PNG Loader = true
2013-09-24 21:32:41 [INFO] [CLIENT] 89MB

我希望你们中的某个人知道解决方案。

4

0 回答 0