gpt4 book ai didi

java - 运行应用程序时,加载资源更好还是存储它们以供使用?

转载 作者:行者123 更新时间:2023-11-30 07:57:58 25 4
gpt4 key购买 nike

我的问题与这个问题(Better to load resources on the run or to pre load them on memory?)有些相关,但是我有一些自己的想法可以提出来。

也就是说,我知道动态加载资源可能会对性能产生影响(加载延迟、滞后等),但我想真正的问题是预先加载所需的所有内容更好,还是按原样加载更好必填。

例如:我目前正在开发一款 2D 游戏。加载游戏时,它会自动加载一些所需的图像/ Sprite 。不过,我正在考虑将其扩展为也包括 map 、元素和 npc(当前保存在文本文件中)。话虽这么说,加载 map 的延迟相当明显(在游戏中更改 map 时为 0.5 - 1.25 秒)。 NPC 和元素影响不大(因为它们通常都很小,而且数量也很少)。

在程序启动时加载所有内容是更好的做法,还是被认为是不好的做法?同样,如果它只适用于较小的实现,那么您预计什么时候加载它们会开始消耗计算机的资源?请注意,我预计游戏将包含大约 200-500 张 map ,每张 map 的最大大小约为 50kb,所有 NPC/元素的元素总数不得超过 200kb。

最佳答案

这是一个很好的问题。这就是我解决它的方法。

我两个都去了。我在视频游戏中创建了路径点。每个航路点都有必须由该航路点加载的各种文件。然后我有一个文件加载器,它有一个加载文件所需的路径点的优先级列表。每个航路点都有它所需的文件。在我的游戏中,当它到达未完成加载的航路点(文件加载器将跟踪航路点完成的百分比)时,它会弹出带有百分比的加载栏。

文件加载器在单独的线程上运行。实现它后,我注意到我一开始只有一个快速加载栏,它只是加载了第一个菜单的一堆菜单图像,而且我再也没有看到另一个加载栏。当用户到达需要的位置时,所有文件都会被加载。

编辑:在需要之前我不会加载 map 的背景图像。尽管该 map 中的所有其他单位(在游戏的其他级别之间共享)都已加载。您愿意在用户计算机上使用多少永远不需要的内存与您愿意让用户承受的加载时间延迟之间存在一个平衡。我能够将内存占用限制在 150MB 左右。如果我愿意的话,这给了我加载所有 map 的空间,如果我决定加载 map 的背景图像的话。如果游戏是小型休闲游戏,并且内存占用已经达到 400MB,那么我会考虑避免加载不必要的对象。您的内存利用率越低,加载对象的选项就越多,而这些选项可能是为了减少加载时间而不需要的。

关于java - 运行应用程序时,加载资源更好还是存储它们以供使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32401101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com