chore: reorganize benchmarks (#13606)

This commit is contained in:
Huáng Jùnliàng
2021-07-28 07:10:29 -04:00
committed by GitHub
parent d1f908924c
commit e4de256cdd
41 changed files with 101 additions and 119 deletions

View File

@@ -1,4 +1,3 @@
benchmark
src
test
*.log

View File

@@ -1,3 +0,0 @@
import "./isIdentifierChar.bench.mjs";
import "./isIdentifierStart.bench.mjs";
import "./isIdentifierName.bench.mjs";

View File

@@ -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();

View File

@@ -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();

View File

@@ -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();

View File

@@ -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();

View File

@@ -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 });

View File

@@ -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, "$&_");
}

View File

@@ -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": {