Skip to content

Commit

Permalink
chore: update benchmark script
Browse files Browse the repository at this point in the history
  • Loading branch information
pi0 committed Jun 12, 2023
1 parent 80554b8 commit 4138ebf
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 46 deletions.
45 changes: 0 additions & 45 deletions bench.cjs

This file was deleted.

77 changes: 77 additions & 0 deletions bench.mjs
@@ -0,0 +1,77 @@
import fs from "node:fs";
import Benchmark from "benchmark";
import sjson from "secure-json-parse";
import bourne from "@hapi/bourne";
import { destr } from "destr";

const { log } = console;

function createSuite(name) {
const suite = new Benchmark.Suite(name);

log(`\n=== ${name} ==`);
suite.on("cycle", (event) => {
log(String(event.target));
});
suite.on("complete", function () {
log("Fastest is " + this.filter("fastest").map("name"));
});

return suite;
}

function bench(name, val) {
const suite = createSuite(name);
suite.add("JSON.parse", () => {
JSON.parse(val);
});
suite.add("destr", () => {
destr(val);
});
suite.add("destr (strict)", () => {
destr(val, { strict: true });
});
suite.add("sjson", () => {
sjson.parse(val);
});
suite.add("@hapi/bourne", () => {
bourne.parse(val);
});
suite.run();
}

function benchTryCatch(name, val) {
const suite = createSuite(name);
suite.add("JSON.parse (try-catch)", () => {
try {
JSON.parse(val);
} catch (err) {
return val;
}
});
suite.add("destr", () => {
destr(val);
});
suite.add("destr (strict)", () => {
destr(val, { strict: true });
});
suite.add("sjson (try-catch)", () => {
try {
sjson.parse(val);
} catch (err) {
return val;
}
});
suite.add("@hapi/bourne", () => {
bourne.parse(val);
});
suite.run();
}

bench("Non-string fallback", 3.14159265359);
bench("Known values", "true");
benchTryCatch("Plain string", `"SALAM"`);

const pkg = fs.readFileSync("./package.json", "utf-8");
bench("standard object", pkg);
benchTryCatch("invalid syntax", pkg.substring(0, pkg.length - 1));
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -20,7 +20,7 @@
"lib"
],
"scripts": {
"bench": "pnpm build && node ./bench.cjs",
"bench": "pnpm build && node ./bench.mjs",
"build": "unbuild",
"dev": "vitest dev",
"lint": "eslint --ext .ts . && prettier -c src test",
Expand Down

0 comments on commit 4138ebf

Please sign in to comment.