// bench_node.js — Node.js 跑分 (对标 cvmruntime)
function now() { return Date.now(); }

// 1. 100万加法
let sum = 0, t0 = now();
for (let i = 0; i < 1000000; i++) sum += i;
let t1 = now();
console.log("1M加法: " + (t1-t0) + "ms, sum=" + sum);

// 2. fib(30)
function fib(n) { return n <= 1 ? n : fib(n-1) + fib(n-2); }
t0 = now(); let f30 = fib(30); t1 = now();
console.log("fib(30): " + (t1-t0) + "ms, result=" + f30);

// 3. 10万闭包
function mk() { let n = 0; return () => ++n; }
t0 = now(); let c = mk();
for (let i = 0; i < 100000; i++) c();
t1 = now();
console.log("100K闭包: " + (t1-t0) + "ms, val=" + c());

// 4. 1万数组 push+read
t0 = now();
let arr = [];
for (let i = 0; i < 10000; i++) arr.push(i);
for (let i = 0; i < 10000; i++) sum += arr[i];
t1 = now();
console.log("10K数组: " + (t1-t0) + "ms");

// 5. 5000字符串拼接
t0 = now();
let s = "";
for (let i = 0; i < 5000; i++) s += "x";
t1 = now();
console.log("5K拼接: " + (t1-t0) + "ms, len=" + s.length);

// 6. 5000 split
t0 = now();
let str = "";
for (let i = 0; i < 5000; i++) str += "a,b,c,";
let parts = str.split(",");
t1 = now();
console.log("5K split: " + (t1-t0) + "ms, fields=" + parts.length);