在 WebAssembly 如何调用三角函数?

发布于 2022-09-11 22:11:40 字数 95 浏览 24 评论 0

尝试过传递 Web 上本身的 Math.sin,发现性能不如直接调用。有什么在 WebAssembly 上调用三角函数的最佳实践么?使用的是 C++ 和 Emscripten。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我很坚强 2022-09-18 22:11:40

用语言提供的基础库啊,比如C++是

#include <math.h>

#include <iostream>
#include <cmath>
#include <time.h>

int main() {
  double result=0;
  clock_t t1 = clock();
  for(long i=0;i<10000000;i++){
    result += cos(i);
    //     std::cout << cos(2) << std::endl;
  }
  std::cout << (clock() - t1) * 1.0 / CLOCKS_PER_SEC * 1000 <<"ms"<< std::endl;

  std::cout <<"result"<< result << std::endl;
}
let result = 0;

function step(input) {
    result += Math.cos(input);
}

console.time('time');
for (let i = 0; i < 10000000; i++) {
    step(i);
}
console.timeEnd('time');
console.log('result', result);

clipboard.png


不开编译优化
clipboard.png
O3优化
clipboard.png


浏览器环境也是能运行的
clipboard.png

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文