gpt4 book ai didi

java - 类、静态方法或实例方法 - 编译语言中的内存消耗和可执行文件大小?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:24:35 26 4
gpt4 key购买 nike

我一直想知道如何尝试提高我的 Flex swf 的性能和大小,类与静态方法与实例方法如何影响性能和最终编译的“可执行文件”的大小?思考如何应用类似 HAML 的东西和 Sass弯曲...

假设我正在构建一个包含大量组件和 View 的非常大的管理界面,并且每个组件都应用了一个 Skin 对象(考虑 Spark Skinning Architecture for Flex )。

现在我想为每个皮肤添加 10 种不同的效果(假设屏幕上有 100 个组件,所以有 1000 个实例化效果)。是否更好:

  1. 让每个效果成为一个类(BlurEffect、GlowEffect...),并将这 10 个添加到皮肤。
  2. 让所有 Effects 成为一个更大类中的实例方法,例如“MultiEffect.as”,并将该类添加到皮肤,引用如 multiEffect.glow().
  3. 在一个单例“EffectManager.as”类中将所有效果设为静态方法,并通过EffectManager.glow(this) 引用皮肤中的效果.

所以

  • 每种皮肤的多个效果等级,对比
  • 每个皮肤一个 Effect 类,带有实例方法,对比
  • 全局一个 Effect 类,带有静态方法

这些因素如何影响内存可执行文件大小(本例中为 swf 大小)?我知道类是更好的 OO 实践,静态方法比实例方法慢,而且应该避免单例,所以这不一定与性能有关。有关内存(在某些情况下越小越好)和文件大小的更多信息。

最佳答案

对于 Flex 找不到这样的信息,但是对于 Java(应该差别不大),对象创建开销只有 8 字节内存。

这意味着如果我们谈论 1000 个实例,则为每个实例使用对象的开销最多为 8K - 可以忽略不计。如果再多 100 倍,它仍然是 800K,仍然没有。

因此,与之前的答案相呼应,选择能为您提供更好设计的选项。

哦,结果文件大小的差异几乎没有。

关于java - 类、静态方法或实例方法 - 编译语言中的内存消耗和可执行文件大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2286162/

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