AS3 - 对象中的代码量是否适用于多个实例?

时间:2016-04-13 16:53:53

标签: actionscript-3 flash actionscript

什么更好?

1000个对象,每行500行代码

VS

1000个对象,每行有30行代码,代表一个管理员,代码为500行。


上下文:

我的游戏中有信号。几十个,几十个。我喜欢它们比原生Flash事件具有更好的性能。

我认为,由于我将拥有这么多,它们应该是轻量级的,因此每个信号只存储一些变量和三种方法。

变量:head,tail,isStepping,hasColdNodes,signalMgr

方法:addListener,removeListener,dispatch


但是所有这些信号都将繁重的工作委托给signalMgr,如:

signalMgr.addListener(this,listener,removeOnFirstCallback);

该经理处理所有双重链接的列表内容,并且代码多于信号。

那么,这样思考是否正确? 我想如果我在信号中包含了所有管理代码,那么每次实例化时都会在内存中重复这些代码。

2 个答案:

答案 0 :(得分:1)

在你的问题的背景下,这几乎无关紧要,两种情况都不会产生太大的差异。

从你所说的看起来你似乎承担了许多事情,但实际上没有检查任何东西。例如,当你说:“我喜欢它们比原生Flash事件有更好的性能。”我只能假设你确实在某处读过,但从不试图自己验证它。只有少数情况下使用信号系统可以产生一点点差异,在大多数情况下它们不会带来太多,在某些情况下它们会使事情变得更糟。在Flash开发环境中,信号不仅仅带来简单的便利。 Flash是一个事件驱动的系统,无法关闭,因此使用信号意味着使用事件+信号,而不是单独使用信号。在自定义事件的情况下,使用委托更有效,更容易使用,不需要任何对象创建。

但问题的真正答案更简单:没有必要优化你不知道需要优化的东西。更糟糕的是,不同的操作系统会产生不同的优化需求,因此任何试图回答一般优化问题的人都只会失败或假装知道。

答案 1 :(得分:0)

我们应该忘记小的效率,大约97%的时间说:过早的优化是所有邪恶的根源。 (c)DonaldKnuth

任何程序员的最终目标都是编写干净的代码。因此,您应该编写干净的代码,只需要一些优化的想法。