【发布时间】:2012-03-15 15:01:26
【问题描述】:
我正在编写一个动画循环,因此试图优化速度。这涉及牺牲很多可读性,但我想知道在某些时候它是否会适得其反。例如,我可能会这样开始:
var Animation = Animations[Current_Animation];
var Sequence = Animation.Sequences[Current_Sequence];
var Action = Sequence.Actions[Current_Action];
if (Action.Repeat_Count != Action.Repeat_End) Sequence.Index--;
但是当我删除无关变量进行优化时,它会出现真正大量的引用:
if (Animations[Current_Animation].Sequences[Current_Sequence].Actions
[Animations[Current_Animation].Sequences[Current_Sequence].Index].Repeat_Count
!= Animations[Current_Animation].Sequences[Current_Sequence].Actions
[Animations[Current_Animation].Sequences[Current_Sequence].Index].Repeat_End)
Animations[Current_Animation].Sequences[Current_Sequence].Index--;
我的循环现在充满了这样的怪物。所以我想知道解释器是否必须停止并整理所有这些内容实际上可能比使用占位符要慢。或者它是否自动知道这一切意味着什么而不使用任何额外的 CPU?
谢谢!
【问题讨论】:
-
现代浏览器在这方面可能改进了很多,但避免不必要的属性查找仍然是一件好事。此外,一遍又一遍地重复
Animations[Current_Animation].Sequences[Current_Sequence]感觉不对;)