刚接触Rust wasm,请各看官高抬贵手。
根据网上资料,使用 wasm-pack 搭配wasm-bindgen将Rust代码编译成 wasm。
搭好环境后,想对比一下rust-wasm与js的性能差距。
#[wasm_bindgen]
pub fn cpu_calc(count: i32) {let mut result = 1;// 计算多少数字下for i in 2..count {let num: f64 = i as f64;let after_sqrt = num.sqrt() as i32 + 1;let mut flag = true;for j in 2..after_sqrt {let dividing = i % j;if dividing == 0 {flag = false;break;}}if flag {result = i; }}// 调用浏览器控制台打印console_log(&format!("rust 素数:{}", result));
}
function cpuCalc(num) {let result = 0;for (let i = 2; i < num; i++) {let flag = true;for (let j = 2; j < Math.sqrt(i); j++) {if (i % j === 0) {flag = false;break;}}if (flag) {result = i;}}console.log('js素数:', result);
}
之后通过js分别调用这两个方法,进行1,000,0000 (100w) 以内的质数计算。并打印最大的质数。
多刷新页面几次,等耗时看起来基本稳定。


计算性能和js基本差不多。
而调用wasm 的时候也是同步的代码。
看来js对于处理的cpu计算任务性能还是可以的。
但是总觉得应该wasm更快一点的。
那wasm在什么场景下比js具有优势呢,这个还需要继续深入。
PS:Rust wasm慢是我代码写的有问题吗?
上一篇:FRP之入门篇