我正在为 android 编写游戏,我担心性能和内存。Java 对许多类的效率会降低吗?
4 回答
许多类影响性能?
我不这么认为。只有一件事是在启动时将所有类加载到内存中会有点慢(可以忽略不计)(已针对较新版本进行了优化)。
它不是你必须担心的课程。更确切地说,它取决于您实例化的对象的数量以及它们被取消引用的频率,因此必须由 GC 清理。
因此,如果有任何事情,请密切关注创建和取消引用的对象数量。
回到 J2ME 时代,一些设备的 jar 限制为 64k(例如)——
大量类的使用会影响 jar 的大小,其中一个技巧是减少类的数量。
您将拥有的唯一开销是这些类中的每一个的类加载。
不确定这是否发生在启动或首次访问/分配给定类的对象期间(或以某种方式结合两者),
但这确实不是问题。
在性能方面,类的数量实际上是无关紧要的。通常,还有许多其他领域通常会对感知性能产生更大的影响(我们在这里谈论的是幅度,而不是百分之几)。
这也取决于您认为许多课程。我会考虑 > 30K 类很多(我曾在一个有这么多类的项目中工作),但您可能已经认为 1K 类很多(而 1K 真的没什么)。通常,添加另外 10K 类(也被使用,注意未加载的类不会显着影响性能)的唯一显着效果是增加了几秒钟的启动时间。
首先关注正确的功能,当你实现它时担心性能。在处理函数时,您应该考虑的唯一性能是选择合适的数据结构和算法。选择适当的数据结构和有效的算法比在类加载方面减少百分之几的影响要大得多。