0

首先很抱歉我只是不知道如何称呼它的阴暗问题名称,如果出于同样的原因我无法找到答案,也很抱歉。

不过这很简单,看看这个日常代码:

value = x * y;

让我们想象一下这段代码在每一帧都被调用,我想确保值等于某个值。我的问题是:这样写会不会更有利可图:

if(value != x * y)value = x * y;

我是在想。疯狂的猜测是,只要值没问题,它就可以节省内存,但在必须设置值时需要两倍的内存。

有什么资料吗?

4

2 回答 2

3

赋值通常更快,除非赋值是通过 setter 函数处理的,由于为保持数据完整性而进行了额外的更改,这可能会产生很长的开销。所以,如果你的目标是一个变量,或者一个类的简单属性(也就是说,它不是通过 描述的public function set theProperty(value:SomeType):void),那么分配会更快,否则最好先检查,但这通常在 setter 函数中完成。

于 2013-10-20T05:55:22.607 回答
1

我在这里进行了测试:http: //jsperf.com/if-or-force-value

随机值:每次分配更好►显然因为 if 是无用的(将始终返回 true)

常量值:每次都分配更好 ► 不是我想的那样,但似乎分配一个值比 if 语句计算得更快。

我再次说 as3,这些测试是 javascript,它可能会有所不同,但我会感到惊讶。

于 2013-10-20T05:07:57.413 回答