mirror of
https://github.com/pjh456/OxideJS.git
synced 2026-10-25 11:11:11 +08:00
feat: 拆分 stress benchmark 到细粒度单热点测试并修复 bench 采样逻辑
This commit is contained in:
@@ -46,7 +46,7 @@ pub fn run_js_stress_bench(config: &BenchConfig, kernel: &Arc<KernelCore>, pool:
|
|||||||
|
|
||||||
for path in &files {
|
for path in &files {
|
||||||
let test_name = path.file_stem().unwrap_or_default().to_string_lossy().to_string();
|
let test_name = path.file_stem().unwrap_or_default().to_string_lossy().to_string();
|
||||||
let mut js = match fs::read_to_string(path) {
|
let js = match fs::read_to_string(path) {
|
||||||
Ok(s) => s,
|
Ok(s) => s,
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
eprintln!("Failed to read {:?}: {}", path, e);
|
eprintln!("Failed to read {:?}: {}", path, e);
|
||||||
@@ -54,10 +54,6 @@ pub fn run_js_stress_bench(config: &BenchConfig, kernel: &Arc<KernelCore>, pool:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if config.iterations > 0 {
|
|
||||||
js = override_iterations(&js, config.iterations);
|
|
||||||
}
|
|
||||||
|
|
||||||
let allocator = Allocator::default();
|
let allocator = Allocator::default();
|
||||||
let program = match oxide_parser::parse(&allocator, &js) {
|
let program = match oxide_parser::parse(&allocator, &js) {
|
||||||
Ok(p) => p,
|
Ok(p) => p,
|
||||||
@@ -196,15 +192,3 @@ fn average_metrics(metrics: &[MetricCollection]) -> MetricCollection {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn override_iterations(js: &str, iters: u32) -> String {
|
|
||||||
js.lines()
|
|
||||||
.map(|line| {
|
|
||||||
if line.trim_start().starts_with("var ITERATIONS ") {
|
|
||||||
format!("var ITERATIONS = {};", iters)
|
|
||||||
} else {
|
|
||||||
line.to_string()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.collect::<Vec<_>>()
|
|
||||||
.join("\n")
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
var ITERATIONS = 100000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
sum += i * 2 + 3 - 1 / 2;
|
||||||
|
sum += (i % 7) * 3;
|
||||||
|
sum += i & 255;
|
||||||
|
sum += i >> 2;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
var ITERATIONS = 2000;
|
||||||
|
|
||||||
|
var base = [];
|
||||||
|
for (var i = 0; i < 100; i++) {
|
||||||
|
base.push(i);
|
||||||
|
}
|
||||||
|
var sum = 0;
|
||||||
|
for (var j = 0; j < ITERATIONS; j++) {
|
||||||
|
var out = base.filter(function (x) { return x % 2 === 0; });
|
||||||
|
sum += out.length;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
var ITERATIONS = 2000;
|
||||||
|
|
||||||
|
var base = [];
|
||||||
|
for (var i = 0; i < 100; i++) {
|
||||||
|
base.push(i);
|
||||||
|
}
|
||||||
|
var sum = 0;
|
||||||
|
for (var j = 0; j < ITERATIONS; j++) {
|
||||||
|
base.forEach(function (x) { sum += x; });
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
var ITERATIONS = 100000;
|
||||||
|
|
||||||
|
var arr = [];
|
||||||
|
for (var i = 0; i < 1000; i++) {
|
||||||
|
arr.push(i);
|
||||||
|
}
|
||||||
|
var sum = 0;
|
||||||
|
for (var j = 0; j < ITERATIONS; j++) {
|
||||||
|
sum += arr[500];
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
var ITERATIONS = 100000;
|
||||||
|
|
||||||
|
var arr = [];
|
||||||
|
for (var i = 0; i < 1000; i++) {
|
||||||
|
arr.push(0);
|
||||||
|
}
|
||||||
|
for (var j = 0; j < ITERATIONS; j++) {
|
||||||
|
arr[500] = j;
|
||||||
|
}
|
||||||
|
arr[500]
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
var ITERATIONS = 50000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
var arr = [];
|
||||||
|
for (var j = 0; j < 10; j++) {
|
||||||
|
arr.push(j);
|
||||||
|
}
|
||||||
|
var joined = arr.join(",");
|
||||||
|
sum += joined.length;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -2,6 +2,7 @@ var ITERATIONS = 50000;
|
|||||||
|
|
||||||
var sum = 0;
|
var sum = 0;
|
||||||
for (var i = 0; i < ITERATIONS; i++) {
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
sum += (+"42") + (+"3.14") + (+"0");
|
var arr = [1, 2, 3];
|
||||||
|
sum += arr.length;
|
||||||
}
|
}
|
||||||
sum
|
sum
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
var ITERATIONS = 2000;
|
||||||
|
|
||||||
|
var base = [];
|
||||||
|
for (var i = 0; i < 100; i++) {
|
||||||
|
base.push(i);
|
||||||
|
}
|
||||||
|
var sum = 0;
|
||||||
|
for (var j = 0; j < ITERATIONS; j++) {
|
||||||
|
var out = base.map(function (x) { return x + 1; });
|
||||||
|
sum += out[0];
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
var ITERATIONS = 50000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
var arr = [];
|
||||||
|
for (var j = 0; j < 10; j++) {
|
||||||
|
arr.push(j);
|
||||||
|
}
|
||||||
|
var popped = arr.pop();
|
||||||
|
sum += popped;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
var ITERATIONS = 2000;
|
||||||
|
|
||||||
|
var base = [];
|
||||||
|
for (var i = 0; i < 100; i++) {
|
||||||
|
base.push(i);
|
||||||
|
}
|
||||||
|
var sum = 0;
|
||||||
|
for (var j = 0; j < ITERATIONS; j++) {
|
||||||
|
var out = base.reduce(function (acc, x) { return acc + x; }, 0);
|
||||||
|
sum += out;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
var ITERATIONS = 3000;
|
||||||
|
|
||||||
|
var base = [];
|
||||||
|
for (var i = 0; i < 100; i++) {
|
||||||
|
base.push(i);
|
||||||
|
}
|
||||||
|
var sum = 0;
|
||||||
|
for (var j = 0; j < ITERATIONS; j++) {
|
||||||
|
var out = base.slice();
|
||||||
|
sum += out.length;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
var ITERATIONS = 500;
|
||||||
|
|
||||||
|
var base = [];
|
||||||
|
for (var i = 0; i < 100; i++) {
|
||||||
|
base.push(100 - i);
|
||||||
|
}
|
||||||
|
var sum = 0;
|
||||||
|
for (var j = 0; j < ITERATIONS; j++) {
|
||||||
|
var out = base.slice();
|
||||||
|
out.sort(function (a, b) { return a - b; });
|
||||||
|
sum += out[0];
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
var ITERATIONS = 100000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
if (i % 2 === 0) {
|
||||||
|
sum += 1;
|
||||||
|
} else if (i % 3 === 0) {
|
||||||
|
sum += 2;
|
||||||
|
} else {
|
||||||
|
sum += 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
var ITERATIONS = 100000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
switch (i % 4) {
|
||||||
|
case 0: sum += 0; break;
|
||||||
|
case 1: sum += 1; break;
|
||||||
|
case 2: sum += 2; break;
|
||||||
|
default: sum += 3; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
var ITERATIONS = 200;
|
|
||||||
|
|
||||||
function sumTo(n) {
|
|
||||||
if (n <= 0) return 0;
|
|
||||||
return n + sumTo(n - 1);
|
|
||||||
}
|
|
||||||
sumTo(ITERATIONS)
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
var ITERATIONS = 20000;
|
||||||
|
|
||||||
|
function add(a, b, c, d) {
|
||||||
|
return a + b + c + d;
|
||||||
|
}
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
sum += add(i, i + 1, i + 2, i + 3);
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
var ITERATIONS = 20000;
|
||||||
|
|
||||||
|
function outer() {
|
||||||
|
var x = 1;
|
||||||
|
return function (n) {
|
||||||
|
return x + n;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
var inner = outer();
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
sum += inner(i);
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
var ITERATIONS = 20000;
|
||||||
|
|
||||||
|
var obj = { value: 1, add: function (n) { return this.value + n; } };
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
sum += obj.add(i);
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
var ITERATIONS = 20000;
|
||||||
|
|
||||||
|
function Animal(name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
Animal.prototype.getName = function () {
|
||||||
|
return this.name;
|
||||||
|
};
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
var a = new Animal("x");
|
||||||
|
sum += a.getName().length;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
var ITERATIONS = 200;
|
||||||
|
|
||||||
|
function fib(n) {
|
||||||
|
if (n <= 1) return n;
|
||||||
|
return fib(n - 1) + fib(n - 2);
|
||||||
|
}
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
sum += fib(15) % 10;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
var ITERATIONS = 20000;
|
||||||
|
|
||||||
|
var obj = {
|
||||||
|
value: 10,
|
||||||
|
getValue: function () { return this.value; },
|
||||||
|
setValue: function (v) { this.value = v; return this; }
|
||||||
|
};
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
obj.setValue(i);
|
||||||
|
sum += obj.getValue();
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
var ITERATIONS = 100000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
var n = i & 1;
|
||||||
|
sum += n == 0;
|
||||||
|
sum += n != 1;
|
||||||
|
sum += n === 0;
|
||||||
|
sum += n !== 1;
|
||||||
|
sum += n < 2;
|
||||||
|
sum += n >= 0;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
var ITERATIONS = 100000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
sum += (i % 2 === 0) ? true : false;
|
||||||
|
sum += i === 0 ? 0 : 1;
|
||||||
|
sum += i > 0 ? 1 : 0;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
var ITERATIONS = 100000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
sum += "42" + i;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
var ITERATIONS = 100000;
|
||||||
|
|
||||||
|
var obj = { value: 5 };
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
sum += obj.value ?? 0;
|
||||||
|
sum += obj.missing ?? 42;
|
||||||
|
var x = (i % 2 === 0) ? 1 : null;
|
||||||
|
sum += x ?? 7;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
var ITERATIONS = 100000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
sum += +"42" + +"3.14" + +"0" + +"0.5" + +"1e3";
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
var ITERATIONS = 20000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
var obj = { valueOf: function () { return 42; }, toString: function () { return "42"; } };
|
||||||
|
sum += obj + 1;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
var ITERATIONS = 100000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
sum += String(42) + String(3.14) + String(0) + String(true) + String(null);
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
var ITERATIONS = 5000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
var arr = [];
|
||||||
|
for (var j = 0; j < 50; j++) {
|
||||||
|
arr.push(j);
|
||||||
|
}
|
||||||
|
sum += arr.length;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -1,11 +1,8 @@
|
|||||||
var ITERATIONS = 50000;
|
var ITERATIONS = 50000;
|
||||||
|
|
||||||
var arr = [];
|
|
||||||
for (var i = 0; i < ITERATIONS; i++) {
|
|
||||||
arr.push(i);
|
|
||||||
}
|
|
||||||
var sum = 0;
|
var sum = 0;
|
||||||
while (arr.length > 0) {
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
sum += arr.pop();
|
var obj = { a: i, b: i * 2 };
|
||||||
|
sum += obj.a + obj.b;
|
||||||
}
|
}
|
||||||
sum
|
sum
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
var ITERATIONS = 20000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
var s = "str" + i;
|
||||||
|
sum += s.length;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
var ITERATIONS = 100000;
|
||||||
|
|
||||||
|
var a = { x: 1, y: 2, z: 3 };
|
||||||
|
var b = { x: 4, y: 5, z: 6 };
|
||||||
|
var c = { x: 7, y: 8, z: 9 };
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
var t = (i % 3 === 0) ? a : (i % 3 === 1) ? b : c;
|
||||||
|
sum += t.x + t.y + t.z;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
var ITERATIONS = 200000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
var i = 0;
|
||||||
|
do {
|
||||||
|
sum += i;
|
||||||
|
i++;
|
||||||
|
} while (i < ITERATIONS);
|
||||||
|
sum
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
var ITERATIONS = 1000000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
sum += i;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
var ITERATIONS = 5000;
|
||||||
|
|
||||||
|
var obj = {};
|
||||||
|
for (var i = 0; i < 100; i++) {
|
||||||
|
obj["k" + i] = i;
|
||||||
|
}
|
||||||
|
var sum = 0;
|
||||||
|
for (var j = 0; j < ITERATIONS; j++) {
|
||||||
|
for (var k in obj) {
|
||||||
|
sum += obj[k];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
var ITERATIONS = 3000;
|
||||||
|
|
||||||
|
var arr = [];
|
||||||
|
for (var i = 0; i < 100; i++) {
|
||||||
|
arr.push(i);
|
||||||
|
}
|
||||||
|
var sum = 0;
|
||||||
|
for (var j = 0; j < ITERATIONS; j++) {
|
||||||
|
for (var k of arr) {
|
||||||
|
sum += k;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
var ITERATIONS = 1500;
|
||||||
|
|
||||||
|
var s = "";
|
||||||
|
for (var i = 0; i < 50; i++) {
|
||||||
|
s += "ab";
|
||||||
|
}
|
||||||
|
var sum = 0;
|
||||||
|
for (var j = 0; j < ITERATIONS; j++) {
|
||||||
|
for (var k of s) {
|
||||||
|
sum += k.charCodeAt(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
var ITERATIONS = 3000;
|
||||||
|
|
||||||
|
var arr = [];
|
||||||
|
for (var i = 0; i < 100; i++) {
|
||||||
|
arr.push(i);
|
||||||
|
}
|
||||||
|
var sum = 0;
|
||||||
|
for (var j = 0; j < ITERATIONS; j++) {
|
||||||
|
for (var k = 0; k < arr.length; k++) {
|
||||||
|
sum += arr[k];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
var ITERATIONS = 1000000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
var i = 0;
|
||||||
|
while (i < ITERATIONS) {
|
||||||
|
sum += i;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
var ITERATIONS = 3000;
|
||||||
|
|
||||||
|
var arr = [];
|
||||||
|
for (var i = 0; i < 100; i++) {
|
||||||
|
arr.push(i);
|
||||||
|
}
|
||||||
|
var sum = 0;
|
||||||
|
for (var j = 0; j < ITERATIONS; j++) {
|
||||||
|
var k = 0;
|
||||||
|
while (k < arr.length) {
|
||||||
|
sum += arr[k];
|
||||||
|
k++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
var ITERATIONS = 50000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
var m = new Map();
|
||||||
|
for (var j = 0; j < 10; j++) {
|
||||||
|
m.set(j, j * 2);
|
||||||
|
}
|
||||||
|
sum += m.get(5);
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
var ITERATIONS = 100000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
sum += Math.floor(i * 1.5);
|
||||||
|
sum += Math.abs(i - 50000);
|
||||||
|
sum += Math.max(i, 0);
|
||||||
|
sum += Math.min(i, 999999);
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
var ITERATIONS = 10000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
var obj = {};
|
||||||
|
for (var j = 0; j < 20; j++) {
|
||||||
|
obj["k" + j] = j;
|
||||||
|
}
|
||||||
|
sum += Object.keys(obj).length;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
var ITERATIONS = 100000;
|
||||||
|
|
||||||
|
var obj = { a: 1, b: 2, c: 3, d: 4 };
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
sum += obj.a + obj.b + obj.c + obj.d;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
var ITERATIONS = 100000;
|
||||||
|
|
||||||
|
var obj = { a: 1, b: 2, c: 3 };
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
var x = obj["a"];
|
||||||
|
sum += x;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
var ITERATIONS = 20000;
|
||||||
|
|
||||||
|
var obj = { a: 1, b: 2, c: 3 };
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
delete obj.a;
|
||||||
|
obj.a = i;
|
||||||
|
sum += obj.a;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
var ITERATIONS = 50000;
|
||||||
|
|
||||||
|
var obj = {};
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
obj["key"] = i;
|
||||||
|
sum += obj["key"];
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
var ITERATIONS = 50000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
var obj = { nested: { deep: { value: i } } };
|
||||||
|
sum += obj.nested.deep.value;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -1,8 +1,10 @@
|
|||||||
var ITERATIONS = 100000;
|
var ITERATIONS = 100000;
|
||||||
|
|
||||||
|
var obj = { x: 0, y: 0 };
|
||||||
var sum = 0;
|
var sum = 0;
|
||||||
for (var i = 0; i < ITERATIONS; i++) {
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
var obj = { x: i, y: i * 2, nested: { a: 1, b: 2 } };
|
obj.x = i;
|
||||||
|
obj.y = i * 2;
|
||||||
sum += obj.x + obj.y;
|
sum += obj.x + obj.y;
|
||||||
}
|
}
|
||||||
sum
|
sum
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
var ITERATIONS = 50000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
var s = new Set();
|
||||||
|
for (var j = 0; j < 10; j++) {
|
||||||
|
s.add(j);
|
||||||
|
}
|
||||||
|
sum += s.size;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
var ITERATIONS = 10000;
|
|
||||||
|
|
||||||
var s = "";
|
|
||||||
for (var i = 0; i < ITERATIONS; i++) {
|
|
||||||
s += "a" + i;
|
|
||||||
}
|
|
||||||
s.length
|
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
var ITERATIONS = 20000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
var s = "";
|
||||||
|
for (var j = 0; j < 50; j++) {
|
||||||
|
s += j;
|
||||||
|
}
|
||||||
|
sum += s.length;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
var ITERATIONS = 50000;
|
||||||
|
|
||||||
|
var s = "Mixed CASE String with UPPER and lower parts";
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
sum += s.toUpperCase().length + s.toLowerCase().length;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
var ITERATIONS = 100000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
var s = "abc";
|
||||||
|
sum += s.charAt(1) === "b";
|
||||||
|
sum += s.charCodeAt(0);
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
var ITERATIONS = 50000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
var a = "1";
|
||||||
|
var b = "2";
|
||||||
|
var c = "3";
|
||||||
|
var d = a + b + c + a + b + c;
|
||||||
|
sum += d.length;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
var ITERATIONS = 50000;
|
||||||
|
|
||||||
|
var s = "The quick brown fox jumps over the lazy dog. 0123456789 abcdefghijklmnopqrstuvwxyz";
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
sum += s.indexOf("fox");
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
var ITERATIONS = 20000;
|
||||||
|
|
||||||
|
var s = "hello world, hello engine, hello rust";
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
var r = s.replace("hello", "hi");
|
||||||
|
sum += r.length;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
var ITERATIONS = 20000;
|
||||||
|
|
||||||
|
var s = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
var parts = s.split(",");
|
||||||
|
sum += parts.length;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
var ITERATIONS = 50000;
|
||||||
|
|
||||||
|
var s = "The quick brown fox jumps over the lazy dog. 0123456789 abcdefghijklmnopqrstuvwxyz";
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
var sub = s.substring(4, 15);
|
||||||
|
sum += sub.length;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
var ITERATIONS = 20000;
|
||||||
|
|
||||||
|
var s = "hello world this is a string that gets trimmed ";
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
sum += s.trim().length;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
var ITERATIONS = 50000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
try {
|
||||||
|
sum += 1;
|
||||||
|
} catch (e) {
|
||||||
|
sum += 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
var ITERATIONS = 20000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
try {
|
||||||
|
throw new Error("boom");
|
||||||
|
} catch (e) {
|
||||||
|
sum += e.message.length;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
var ITERATIONS = 100000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
sum += typeof i;
|
||||||
|
sum += typeof "str";
|
||||||
|
sum += typeof null;
|
||||||
|
sum += typeof {}.a;
|
||||||
|
}
|
||||||
|
sum
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
var ITERATIONS = 100000;
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (var i = 0; i < ITERATIONS; i++) {
|
||||||
|
sum += -i;
|
||||||
|
sum += ~i;
|
||||||
|
sum += !i;
|
||||||
|
sum += !(i > 0);
|
||||||
|
}
|
||||||
|
sum
|
||||||
Reference in New Issue
Block a user