Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
[12:43:56.056] TypeError: asm.js type error: non-expression-statement call must be coerced @ pi.js:91
+floor, +pow везде) [13:02:08.076] Error: successfully compiled asm.js code (total compilation time 0ms) @ pi.js
[13:02:08.084] "pi (asm.js) start"
[13:02:30.776] "{"hex":"7AF5863EFF","fraction":1.4803089050105553}"
[13:02:30.776] "pi (asm.js) took 22692 ms."
[13:02:30.786] "pi (pure JS) start"
[13:02:51.523] "{"hex":"7AF5863EFF","fraction":1.4803089050105553}"
[13:02:51.523] "pi (pure JS) took 20736 ms."|0 и +foo function measure(name, f) {
console.log(name + " start")
var start = Date.now();
var result = f(10000000);
var end = Date.now();
console.log(JSON.stringify(result));
console.log(name + " took " + (end - start) + " ms.");
}
measure("pi (pure JS)", pi);
Интересно, конечно, почему так, ну что же, коварная консоль)
$ gcc -o pi -O3 -m32 -msse4 -mfpmath=sse pi.c
$ time ./pi position = 10000000 fraction = 1.480308905010555 hex digits = 7AF5863EFF ./pi 10000000 20.38s user 0.01s system 99% cpu 20.391 total
ArrayBuffer, а указатели эмулируют целочисленной переменной. При этом поддерживается только правильно выравненные указатели, т.е. int16 должен быть выравнен на 2 байта, а int32 — на 4 байта и так далее. i — это правильно выравненный указатель на double, то как прочитать double по «адресу» i? Надо взять Float64Array представление кучи и прочитать из него элемент с индексом (i / 8) (double занимаем 8 байт).
Asm.js практика