Судя по всему 10 000 000, но что-то тут не так, ваш код на 10^7 я просто даже боюсь запускать. Даже на шестом порядке больше минуты. Ваше pure точно pure?
Да, на счёт +floor читал, но у меня не ночная, так что увидев, что работает, решил, что атавизм)
Какое число переданно в пи? Хэша 7AF5863EFF нет ни на 100 000 ни на 10 000
Сейчас перепроверил, вот взял ваш код и ничегошеньки не менял, 71,5 сек от 1'000'000.
Да. Увы иначе только если грубо браузерное имя и версию) Но в сумме эта проверка и 70мс не займёт, так что если нужно, (а бывает ну очень нужно) подождать) А вот как поступать потом дело ваше)
В следующем посте рассмотрю компиляцию на основе lljs > asm.js.
Собираюсь посмотреть в сторону Emscripten.
Первое язык, который можно скомпилировать в asm.js, а второе инструмент для компиляции сишного кода в asm.js)
1, Как компилировать код в asm.js вроде написано, поэтому берём pi.c и emcc pi.c -o pi.js. Но как с этим работать не разбирался пока что.
2. Да, вы можете вернуть из модуля объект с функциями. Тут, например можно в конце модуля написать
return {
series: series,
expm: expm
}
и потом в функциях js обращаться как к прочим методам (например в данном случае было бы series.series(...) or series.expm(...))
3.Озадаченный этим вопросом я так и не нашёл ответа, кроме разве что по-дурацки проверить время работы функции. В консоль в FF выводится «Error: successfully compiled asm.js code». Но никакие ухищрения не помогли мне вытащить эти заветные слова.
Не могу не согласиться) По-моему в этот язык инвестировала мозилла с целью использования своей платформы, как игровой. Поэтому есть emcc, чтобы компилить обычный сишный код в asmjs. Поэтому и WebGL + asm.js. А где игры, там и юзеры)
Спасибо, исправил. В первом случае взял время не из той консоли.
В конечной статистике разная единица измерения (секунды и мс). А сравнивать надо по сути второе значение от программы и результат работы браузера. Целиком вывел для наглядности.
Какое число переданно в пи? Хэша 7AF5863EFF нет ни на 100 000 ни на 10 000
Сейчас перепроверил, вот взял ваш код и ничегошеньки не менял, 71,5 сек от 1'000'000.
console.dir(pi(1000000));
console.timeEnd('njs');
[01:34:18.045] undefined
[01:34:18.046] njs: таймер запущен
— [01:35:29.505] [object Object]
[01:35:29.506] njs: 71459.41мс
и мой итог 1,9 сек от 1'000'000
console.dir(pi(1000000));
console.timeEnd('asmjs');
[01:38:17.180] undefined
[01:38:17.181] asmjs: таймер запущен
[01:38:19.050] [object Object]
[01:38:19.050] asmjs: 1868.46мс
Собираюсь посмотреть в сторону Emscripten.
Первое язык, который можно скомпилировать в asm.js, а второе инструмент для компиляции сишного кода в asm.js)
2. Да, вы можете вернуть из модуля объект с функциями. Тут, например можно в конце модуля написать
return {
series: series,
expm: expm
}
и потом в функциях js обращаться как к прочим методам (например в данном случае было бы series.series(...) or series.expm(...))
3.Озадаченный этим вопросом я так и не нашёл ответа, кроме разве что по-дурацки проверить время работы функции. В консоль в FF выводится «Error: successfully compiled asm.js code». Но никакие ухищрения не помогли мне вытащить эти заветные слова.
В конечной статистике разная единица измерения (секунды и мс). А сравнивать надо по сути второе значение от программы и результат работы браузера. Целиком вывел для наглядности.