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

标签 java c++ apache-flex memory-management performance

我一直想知道如何尝试提高我的 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/

相关文章:

来自匿名方法的java引用 "this"

java - 切换按钮与图像更改按钮

java - 空对象的令人烦恼的对象转换错误

c++ - 我的析构函数需要在这个函数中做什么?

apache-flex - 什么是 SWC,我们何时/何地在 Flash 中使用 SWC

java - 初学者 JavaFX,跟踪随机生成的最大半径?

c++ - 使用成员创建数组时的不同 -Wsign-conversion 行为

c++ - 如何从文本文件的中间读取

php - Flashbuilder、PHP 和 MySQL

apache-flex - PhoneGap 或 Flex