【问题标题】:Android: Is Java less effective with many classesAndroid:Java 对许多类的效率较低
【发布时间】:2012-10-15 13:59:59
【问题描述】:

我正在为 android 编写游戏,我担心性能和内存。 Java 对许多类的效率是否较低?

【问题讨论】:

  • 您的意思是:“Java 对许多类的效率较低吗?”...我想说这取决于对它们做了什么。这与“班级数量”无关......

标签: java android performance class


【解决方案1】:

许多类会影响性能?

我不这么认为。只有一件事是在启动时将所有类加载到内存中会有点慢(可以忽略不计)(已针对较新版本进行了优化)。

【讨论】:

  • Afaik JIT 也应该防止这种情况发生,因此不应该加载当前不需要的任何内容。
  • @WarrenFaith:我也有同样的印象。
【解决方案2】:

您不必担心的课程太多。更确切地说,这取决于您实例化的对象的数量以及它们被取消引用的频率,因此必须由 GC 清理。

因此,如果有任何事情,请留意创建和取消引用的对象数量。

【讨论】:

    【解决方案3】:

    回到 J2ME 时代,某些设备的 jar 限制为 64k(例如) -
    大量类的使用会影响 jar 大小,其中一个技巧是减少类的数量。
    您将拥有的唯一开销是这些类中的每一个的类加载。
    不确定这是否发生在启动时或首次访问/分配给定类的对象期间(或以某种方式结合两者),
    但这确实不是问题。

    【讨论】:

      【解决方案4】:

      在性能方面,类的数量实际上是无关紧要的。通常,还有许多其他领域通常会对感知性能产生更大的影响(我们在这里谈论的是幅度,而不是百分之几)。

      这还取决于您认为 许多 类。我会考虑 > 30K 类很多(我曾在一个有这么多类的项目中工作),但您可能已经认为 1K 类很多(而 1K 真的没什么)。通常,添加另外 10K 类(也使用,注意未加载的类不会显着影响性能)的唯一显着效果是增加了几秒钟的启动时间。

      首先关注正确的功能,当你实现它时担心性能。在处理函数时应该考虑的唯一性能是选择合适的数据结构和算法。选择适当的数据结构和有效的算法比在类加载方面减少百分之几的影响要大得多。

      【讨论】:

        猜你喜欢
        • 2016-11-10
        • 2017-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多