mirror of
https://github.com/nodejs/node.git
synced 2025-05-15 08:02:06 +00:00

PR-URL: https://github.com/nodejs/node/pull/51362 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
104 lines
2.0 KiB
JavaScript
104 lines
2.0 KiB
JavaScript
// Copyright 2023 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
(() => {
|
|
|
|
let a = 19, b = 3;
|
|
let i = {};
|
|
|
|
function copy() {
|
|
let o = {};
|
|
o.a0 = i.a0;
|
|
o.a1 = i.a1;
|
|
o.a2 = i.a2;
|
|
o.a3 = i.a3;
|
|
o.a4 = i.a4;
|
|
o.a5 = i.a5;
|
|
o.a6 = i.a6;
|
|
o.a7 = i.a7;
|
|
o.a8 = i.a8;
|
|
o.a9 = i.a9;
|
|
o.a10 = i.a10;
|
|
o.a11 = i.a11;
|
|
o.a12 = i.a12;
|
|
o.a13 = i.a13;
|
|
o.a14 = i.a14;
|
|
o.a15 = i.a15;
|
|
o.a16 = i.a16;
|
|
o.a17 = i.a11;
|
|
o.a18 = i.a18;
|
|
o.a19 = i.a19;
|
|
return o;
|
|
}
|
|
|
|
function fact() {
|
|
let i = a;
|
|
let r = 1;
|
|
while (i != 0) {
|
|
r *= i;
|
|
i--;
|
|
}
|
|
return i;
|
|
}
|
|
|
|
function is_prime() {
|
|
for (let i = 2; i <= Math.sqrt(a); i++) {
|
|
if (a % i == 0) return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
function eratosthenes(max) {
|
|
let nums = new Array(max).fill(false);
|
|
nums[0] = nums[1] = true;
|
|
for (let i = 2; i <= Math.sqrt(max); i++) {
|
|
if (nums[i]) continue;
|
|
for (var j = i * i; j < max; j += i) {
|
|
nums[j] = true;
|
|
}
|
|
}
|
|
return nums;
|
|
}
|
|
|
|
// Initializing feedback for each function
|
|
%PrepareFunctionForOptimization(copy);
|
|
i = copy();
|
|
copy();
|
|
|
|
%PrepareFunctionForOptimization(fact);
|
|
fact();
|
|
a = 29;
|
|
fact();
|
|
|
|
%PrepareFunctionForOptimization(is_prime);
|
|
is_prime();
|
|
a = 23;
|
|
is_prime();
|
|
a = 25;
|
|
is_prime();
|
|
|
|
%PrepareFunctionForOptimization(eratosthenes);
|
|
eratosthenes(1000);
|
|
|
|
// Creating runners
|
|
function run_copy() {
|
|
%BenchTurbofan(copy, 10);
|
|
}
|
|
function run_fact() {
|
|
%BenchTurbofan(fact, 10);
|
|
}
|
|
function run_prime() {
|
|
%BenchTurbofan(is_prime, 10);
|
|
}
|
|
function run_eratosthenes() {
|
|
%BenchTurbofan(eratosthenes, 10);
|
|
}
|
|
|
|
// Registering tests
|
|
createSuite('Medium-Copy', 1, run_copy);
|
|
createSuite('Medium-Fact', 1, run_fact);
|
|
createSuite('Medium-Prime', 1, run_prime);
|
|
createSuite('Medium-Eratosthenes', 1, run_eratosthenes);
|
|
})();
|