【发布时间】:2012-03-01 22:29:08
【问题描述】:
众所周知,在处理数据时,Flash 的行为方式非常难以预测。我很好奇,除了需要精度的值之外,使用数字而不是整数是否有任何性能/内存优势。听说Flash中的一些基本操作可能会在两种类型之间多次转换来解析表达式。我还听说 Flash 运行时实际上在运行时将整数映射到非精度数字/浮点数。这是真的吗?
【问题讨论】:
标签: actionscript-3 flash
众所周知,在处理数据时,Flash 的行为方式非常难以预测。我很好奇,除了需要精度的值之外,使用数字而不是整数是否有任何性能/内存优势。听说Flash中的一些基本操作可能会在两种类型之间多次转换来解析表达式。我还听说 Flash 运行时实际上在运行时将整数映射到非精度数字/浮点数。这是真的吗?
【问题讨论】:
标签: actionscript-3 flash
Flash 运行时确实是一个黑暗的地方。
nothing。uints 感觉更好。Jackson Dunstan 对不同的 AS3 语言结构性能进行了很好的测试。当然,自己检查结果总是好的。从关于 10.2 性能的系列中,您可以看到,对于每个新的 Flash Player 版本,它们都会优化某些内容,但其他内容可能会变慢:123。
附:这个答案可能很快就会过时,并且可能会在几年后被引用,这当然是错误的。
【讨论】:
int 对 Number 没有任何真正的性能优势。因此,如果您没有将变量用于循环索引或需要精确增量的东西,那么 Number 就可以了。事实上,如果你得到一个无效的结果,一个 Number 可以是 NaN,这是一个很好的好处。
【讨论】:
+ - / * % 都是数字操作。如果在 int/uint 上使用,它们将被 Flash 播放器转换为数字背景并在操作完成后重铸回 int/uint。| & ^ >> << >>> (bitwize) 将 int/uint 类型保留在播放器中,并针对这些类型进行了优化。"