我有一段代码在循环中运行,除以100,这减少了我的fps计数。
在大多数情况下, int / uint 类型被除以100,从而产生一个简单的数字。
我只是想知道如何优化它。
编辑: 使用 @scriptocalypse 建议的基准很小 - 乘以0.01:
import flash.utils.getTimer;
for(var k:Number = 20; k > 0; k--)
{
var a:int = getTimer();
var o:Number = 100;
var p:Number;
for(var i:Number = 100000000; i > 0; i--)
{
p = o * 0.01; // took 423~510 <--------------
//p = o / 100; // took 713~768 <--------------
}
var b:int = getTimer();
trace( b - a);
}
答案 0 :(得分:4)
我怀疑它并不是导致大部分问题的分歧,因为与其他操作相比,即使是缓慢的数学运算也应该相对较快。
虽然这个:
x * 0.01;
理论上应该比
更快x / 100;
我仍然怀疑它不会产生太大的影响。你在循环中还做了什么?
答案 1 :(得分:3)
几乎可以肯定,正确的答案是不要。程序员应编写清晰易读的代码,编译器应优化。
答案 2 :(得分:3)