我编写了一段非常基本的代码来计算 Rust(编译为 WASM)和 JavaScript 中的数字是否为素数,以对算术性能进行基准测试。
我满心期待 Rust/WASM 能够打败 JavaScript。在我做过的所有其他算术基准测试中,Rust/WASM 似乎比 JavaScript 更有优势,或者至少与之匹配。然而,在这个测试中,JavaScript 似乎远远优于 WASM,我并没有真正解释为什么会这样。
生锈代码:
pub fn calculate_is_prime(number: u64) -> bool {
if number == 1 {
return false;
}
if number == 2 {
return true;
}
for i in 2..number {
if number % i == 0 {
return false;
}
}
return true;
}
#[wasm_bindgen]
pub fn bench_rs(max: u64) -> u64 {
(1..=max).map(|n| calculate_is_prime_rs(n) as u64).sum()
}
Run Code Online (Sandbox Code Playgroud)
JavaScript 代码:
function calculateIsPrime(number) {
if (number === 1) { …Run Code Online (Sandbox Code Playgroud)