gpt4 book ai didi

java - Android中的映射结构和动态内存分配

转载 作者:行者123 更新时间:2023-11-30 04:06:19 26 4
gpt4 key购买 nike

最近我发布了一款在 Android 平台上完全用 Java 编写的游戏。目前我正在尝试获得尽可能多的性能。在我的游戏案例中,问题似乎是我在 Map 更适合的地方更频繁地使用 ArrayList 容器。为了解释我自己,我这样做是因为我害怕会在幕后触发动态内存分配(Android 上的 Map/Tree 结构)。也许在 Android/Java 平台上有某种我不知道的结构,可以为我提供快速的搜索结果,并且不会在添加新元素时动态分配额外的内存?

更新:例如,我使用 ArrayList 结构来保存我游戏的大部分粒子。当然,单独(不是按顺序)删除它们是一件很痛苦的事情,因为系统需要遍历整个容器只是为了删除一个实体对象(当然是在最坏的情况下)。

最佳答案

我不会担心内存分配导致的速度减慢,除非您特别发现它是一个问题。内存分配并不是导致 Android 游戏速度下降的真正原因,问题通常出在 GC 运行时。除非您经常从 Map 中插入和删除,否则您可能不必担心分配问题。

更新:

不使用 map ,您可能只想在不再需要粒子时将它们标记为“已死”,并使用该标志在更新迭代中跳过它们。将对死粒子的引用存储在新的死粒子 ArrayList 中,并在需要新粒子时从该列表中取出一个。这样您就可以在需要时立即访问粒子。

关于java - Android中的映射结构和动态内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11595942/

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