0

I wrote a basic sum array function in both JS and Rust. Size of the array was 1 million. Node gave me the result in 4 ms whereas Rust took 15.4 ms (both on my laptop).

Why such a significant difference, given all the advantages that Rust has?

JS Code

const calcSum = arr => {
    let sum = 0;
    let i = arr.length;

    while(i--) sum += arr[i];
    return sum;
};

const run = size => {
    const arr = Array.from(Array(size).keys());
    const start = Date.now();
    const sum = calcSum(arr);
    const dur = Date.now() - start;
    console.log(sum, dur);
};

run(1e6);

Rust Code

use std::time::Instant;
const SIZE: i64 = 1e6 as i64;

fn main() {
    let a = get_array(SIZE);    
    let now = Instant::now();
    let sum = calc_sum(&a);
    let tme = Instant::now().duration_since(now);
    println!("{}, {:?}", sum, tme);
}

fn calc_sum(a: &Vec<i64>) -> i64 {
    let mut sum = 0;
    
    for n in a {
        sum += n;
    }
    
    sum
}

fn get_array(size: i64) -> Vec<i64> {
    let mut a: Vec<i64> = Vec::new();

    for i in 0..size {
        a.push(i);
    }

    a
}
Manu Soman
  • 153
  • 11

0 Answers0