gpt4 book ai didi

actionscript-3 - 在什么情况下反向循环在 Flash 中更快,为什么?

转载 作者:行者123 更新时间:2023-12-01 06:13:47 25 4
gpt4 key购买 nike

根据 Adob​​e 的说法,反向 for 循环是最快的循环方式:

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

我无法创建反向 for 循环始终比正常循环更快的测试,但我假设 Adob​​e 了解 Flash。有谁知道在什么情况下这是真的,为什么?

最佳答案

如果向后迭代,则不必重新计算数组或 Vector 的长度

for(var i:int = list.length; i > 0; i--)
// -------------^^^^^^^^^^^ Length is calculated once for the start value.

对比:

for(var i:int = 0; i < list.length; i++)
// --------------------^^^^^^^^^^^ Length is calculated for each iteration.

仅供引用,区别在于速度可以忽略不计。我个人使用对我来说更易读的那个(前者)。

除此之外 - 如果您正在遍历一个所有对象都属于同一类型的集合,您应该使用 for each 循环。这比上述任何一种都更快、更易读且更合乎逻辑。它更快的原因是每次迭代都不需要类型转换——类型是在定义循环时设置的:

var strings:Array = ["a","b","c"];
for each(var i:String in strings)
{
trace(i);
}

关于actionscript-3 - 在什么情况下反向循环在 Flash 中更快,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18454652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com