Наткнулся на пост
Nicolas Cannasse , тесты довольно старые, но встретились также и
довольно свежие сравнительные тесты на ту же тему. А поскольку имею надобность посчитать изрядное количество корней, поставил Haxe SDK 2.09 (ранее с ним дела не имел) и попробовал воспроизвести увиденные у отмеченных авторов результаты. Однако, странным образом, скорость вычисления квадратного корня Нахе, в моих тестах, получается много ниже, чем у Math.sqrt() для Actionscript. Компилирую из под FlashDevelop:

Код AS3:
package ;
import flash.Lib;
import flash.Memory;
import flash.utils.ByteArray;
class Main
{
static function main()
{
prepare();
var i:Int = 0;
var beginTime:Int = Lib.getTimer();
var result:Float = 0;
while(i<1000000){
result = rSqrt(1245);
i++;
}
trace(Lib.getTimer() - beginTime);
}
public static function prepare():Void {
var b:ByteArray = new ByteArray();
b.length = 1024;
Memory.select(b);
}
public static function rSqrt(x:Float): Float
{
var original:Float = x;
var half:Float = 0.5 * x;
Memory.setFloat(0, x);
var i:Int =Memory.getI32(0);
i = 0x5f3759df - (i >> 1);
Memory.setI32(0, i);
x = Memory.getFloat(0);
x = x * (1.5 - half * x * x);
x = original * x;
return x;
}
}
Странно то, что скорость работы Math.sqrt() сравнима с указанной в последней статье, но корень из Haxe считается втрое медленнее (а не вдвое быстрее, чего, собственно, желалось).
выбор версии флеш-плеера для компилируемого проекта на скорость видимого влияния не оказывает. Тестил на 2-х ядерном AMD Athlon, 2Гб, 2ГГц. Отчего такое отличие результатов? Adobe улучшил свой расчет корня? Или я что-то в Нахе не понял?