chore: reorganize benchmarks (#13606)
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
benchmark
|
||||
src
|
||||
test
|
||||
*.log
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
import "./isIdentifierChar.bench.mjs";
|
||||
import "./isIdentifierStart.bench.mjs";
|
||||
import "./isIdentifierName.bench.mjs";
|
||||
@@ -1,31 +0,0 @@
|
||||
import Benchmark from "benchmark";
|
||||
import baseline from "@babel/helper-validator-identifier-baseline";
|
||||
import current from "../lib/index.js";
|
||||
import { report } from "./util.mjs";
|
||||
|
||||
const suite = new Benchmark.Suite();
|
||||
|
||||
function benchCases(implementation, name) {
|
||||
suite.add(name + "#isIdentifierChar on 4 ASCII characters", () => {
|
||||
implementation.isIdentifierChar(0x61);
|
||||
implementation.isIdentifierChar(0x7b);
|
||||
implementation.isIdentifierChar(0x5f);
|
||||
implementation.isIdentifierChar(0x24);
|
||||
});
|
||||
|
||||
suite.add(name + "#isIdentifierChar on 4 non-ASCII characters", () => {
|
||||
implementation.isIdentifierChar(0x80);
|
||||
implementation.isIdentifierChar(0x4e00);
|
||||
implementation.isIdentifierChar(0xffff);
|
||||
implementation.isIdentifierChar(0x10000);
|
||||
});
|
||||
|
||||
suite.add(name + "#isIdentifierChar on TIP character", () => {
|
||||
implementation.isIdentifierChar(0x30000);
|
||||
});
|
||||
}
|
||||
|
||||
benchCases(baseline, "baseline");
|
||||
benchCases(current, "current");
|
||||
|
||||
suite.on("cycle", report).run();
|
||||
@@ -1,30 +0,0 @@
|
||||
import Benchmark from "benchmark";
|
||||
import baseline from "@babel/helper-validator-identifier-baseline";
|
||||
import current from "../lib/index.js";
|
||||
import { report } from "./util.mjs";
|
||||
|
||||
const suite = new Benchmark.Suite();
|
||||
|
||||
function benchCases(implementation, name) {
|
||||
suite.add(name + "#isIdentifierName on 2 short ASCII words", () => {
|
||||
implementation.isIdentifierName("aforementioned");
|
||||
implementation.isIdentifierName("zap cannon");
|
||||
});
|
||||
|
||||
suite.add(name + "#isIdentifierName on 1 long ASCII words", () => {
|
||||
implementation.isIdentifierName(
|
||||
"Pneumonoultramicroscopicsilicovolcanoconiosis"
|
||||
);
|
||||
});
|
||||
|
||||
suite.add(name + "#isIdentifierName on 3 non-ASCII words", () => {
|
||||
implementation.isIdentifierName("مذكور أعلاه");
|
||||
implementation.isIdentifierName("cañón de zap");
|
||||
implementation.isIdentifierName("𠡦𠧋𡆠囝〇𠁈𢘑𤯔𠀑埊");
|
||||
});
|
||||
}
|
||||
|
||||
benchCases(baseline, "baseline");
|
||||
benchCases(current, "current");
|
||||
|
||||
suite.on("cycle", report).run();
|
||||
@@ -1,31 +0,0 @@
|
||||
import Benchmark from "benchmark";
|
||||
import baseline from "@babel/helper-validator-identifier-baseline";
|
||||
import current from "../lib/index.js";
|
||||
import { report } from "./util.mjs";
|
||||
|
||||
const suite = new Benchmark.Suite();
|
||||
|
||||
function benchCases(implementation, name) {
|
||||
suite.add(name + "#isIdentifierStart on 4 ASCII characters", () => {
|
||||
implementation.isIdentifierStart(0x61);
|
||||
implementation.isIdentifierStart(0x7b);
|
||||
implementation.isIdentifierStart(0x5f);
|
||||
implementation.isIdentifierStart(0x24);
|
||||
});
|
||||
|
||||
suite.add(name + "#isIdentifierStart on 4 non-ASCII characters", () => {
|
||||
implementation.isIdentifierStart(0x80);
|
||||
implementation.isIdentifierStart(0x4e00);
|
||||
implementation.isIdentifierStart(0xffff);
|
||||
implementation.isIdentifierStart(0x10000);
|
||||
});
|
||||
|
||||
suite.add(name + "#isIdentifierStart on TIP character", () => {
|
||||
implementation.isIdentifierStart(0x30000);
|
||||
});
|
||||
}
|
||||
|
||||
benchCases(baseline, "baseline");
|
||||
benchCases(current, "current");
|
||||
|
||||
suite.on("cycle", report).run();
|
||||
@@ -1,27 +0,0 @@
|
||||
import Benchmark from "benchmark";
|
||||
import baseline from "@babel/helper-validator-identifier-baseline";
|
||||
import current from "../lib/index.js";
|
||||
import { report } from "./util.mjs";
|
||||
|
||||
const suite = new Benchmark.Suite();
|
||||
|
||||
function benchCases(implementation, name) {
|
||||
suite.add(name + "#isKeyword on 4 keywords", () => {
|
||||
implementation.isKeyword("debugger");
|
||||
implementation.isKeyword("throw");
|
||||
implementation.isKeyword("extends");
|
||||
implementation.isKeyword("instanceof");
|
||||
});
|
||||
|
||||
suite.add(name + "#isKeyword on 4 non-keywords", () => {
|
||||
implementation.isKeyword("debuggerr");
|
||||
implementation.isKeyword("threw");
|
||||
implementation.isKeyword("extend");
|
||||
implementation.isKeyword("instanceOf");
|
||||
});
|
||||
}
|
||||
|
||||
benchCases(baseline, "baseline");
|
||||
benchCases(current, "current");
|
||||
|
||||
suite.on("cycle", report).run();
|
||||
@@ -1,27 +0,0 @@
|
||||
import Benchmark from "benchmark";
|
||||
import baseline from "@babel/helper-validator-identifier-baseline";
|
||||
import current from "../lib/index.js";
|
||||
import { report } from "./util.mjs";
|
||||
|
||||
const suite = new Benchmark.Suite();
|
||||
|
||||
function benchCases(implementation, name) {
|
||||
suite.add(name + "#isStrictBindReservedWord on 4 keywords", () => {
|
||||
implementation.isStrictBindReservedWord("arguments");
|
||||
implementation.isStrictBindReservedWord("eval");
|
||||
implementation.isStrictBindReservedWord("implements");
|
||||
implementation.isStrictBindReservedWord("instanceof");
|
||||
});
|
||||
|
||||
suite.add(name + "#isStrictBindReservedWord on 4 non-keywords", () => {
|
||||
implementation.isStrictBindReservedWord("argumentss");
|
||||
implementation.isStrictBindReservedWord("evals");
|
||||
implementation.isStrictBindReservedWord("implement");
|
||||
implementation.isStrictBindReservedWord("instanceOf");
|
||||
});
|
||||
}
|
||||
|
||||
benchCases(baseline, "baseline");
|
||||
benchCases(current, "current");
|
||||
|
||||
suite.on("cycle", report).run({ async: false });
|
||||
@@ -1,17 +0,0 @@
|
||||
export function report(event) {
|
||||
const bench = event.target;
|
||||
const timeMs = bench.stats.mean * 1000;
|
||||
const time =
|
||||
timeMs < 10
|
||||
? `${Math.round(timeMs * 1000) / 1000}ms`
|
||||
: `${Math.round(timeMs)}ms`;
|
||||
const msg = `${bench.name}: ${formatNumber(bench.hz)} ops/sec ±${
|
||||
Math.round(bench.stats.rme * 100) / 100
|
||||
}% (${time})`;
|
||||
console.log(msg);
|
||||
}
|
||||
|
||||
function formatNumber(x) {
|
||||
if (x < 100) return `${Math.round(x * 100) / 100}`;
|
||||
return `${Math.round(x)}`.replace(/\d(?=(?:\d{3})+$)/g, "$&_");
|
||||
}
|
||||
@@ -14,9 +14,7 @@
|
||||
"main": "./lib/index.js",
|
||||
"exports": "./lib/index.js",
|
||||
"devDependencies": {
|
||||
"@babel/helper-validator-identifier-baseline": "npm:@babel/helper-validator-identifier@7.10.4",
|
||||
"@unicode/unicode-13.0.0": "^1.0.6",
|
||||
"benchmark": "^2.1.4",
|
||||
"charcodes": "^0.2.0"
|
||||
},
|
||||
"engines": {
|
||||
|
||||
Reference in New Issue
Block a user