理解 for 循环、while 循环和 do 循环之间的区别(AS3)

本文探讨了在Flash中使用不同类型的循环(如for循环、while循环和do循环)的性能差异,并提供了一些提高循环效率的建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

理解 for 循环、while 循环和 do 循环之间的区别

在 Flash 中,反向 for 循环是执行速度最快的循环。 如果循环中需要一个已存储的相同类型对象的列表,使用 Vector 引用该对象列表的反向 for 循环是最快的方式。

如果使用 int 作为迭代参数,而不使用 uint,所有 3 个循环的执行速度都更快。 如果递减循环变量,而不是递增,所有 3 个循环的执行速度都更快。(注意: 如果递减循环变量 i 并使用 i>=0 作为终止条件,并且如果 i 是一个 uint,您将触发一个无限循环。)

如果使用一个变量或常量作为终止条件,而不是用表达式或对象属性,所有 3 个循环的执行速度都更快。 因为初始条件仅需要计算一次(而不是在每次循环迭代中都计算),所以在任何这些循环中为初始条件使用表达式还是对象属性并没有显著的区别。

任何可在不影响结果的前提下移动到循环外部的内容都应该移动。 这包括在循环外部声明对象(参阅有关重用对象的章节),其中在循环内对新构造函数的使用有时可移动到循环外,并且如果终止循环条件是一个表达式,应该在循环外计算它。

我听人说,如果使用的每个对象引用下一个对象,则比使用一个数组来引用对象更快。 在我的测试中,我发现此说法是错误的。

使用数组不但更容易,还能更快地完成初始化并使用它。 当然,使用 Vector 代替数组会更快。 (参阅for_loop_v_sequential_loop 文件夹中的示例测试文件。)

所有这些建议都不可能在大部分情况下具有显著成效。 但是,如果希望竭尽全力提升编码的效率,或者如果项目涉及到迭代大量循环,还是值得实现这些调节的。


http://www.adobe.com/cn/devnet/flash/articles/optimizing-flash-performance.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值