aboutsummaryrefslogtreecommitdiff
path: root/bench/snippets
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-05-10 21:37:08 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-05-10 21:37:08 -0700
commite1c6adc73700aaa9012a1e40b022af3e3df8a9ad (patch)
treee8f8abeec757299e3d3f6ca85d3e82a080b261ae /bench/snippets
parent5e0eedccb06a6991e48220bd4df703d725f65e83 (diff)
downloadbun-e1c6adc73700aaa9012a1e40b022af3e3df8a9ad.tar.gz
bun-e1c6adc73700aaa9012a1e40b022af3e3df8a9ad.tar.zst
bun-e1c6adc73700aaa9012a1e40b022af3e3df8a9ad.zip
Prepare to run these automatically
Diffstat (limited to 'bench/snippets')
-rw-r--r--bench/snippets/array-arguments-slice.mjs2
-rw-r--r--bench/snippets/array-map.mjs2
-rw-r--r--bench/snippets/array-shift.mjs2
-rw-r--r--bench/snippets/arraybuffersink.mjs2
-rw-r--r--bench/snippets/assert.mjs2
-rw-r--r--bench/snippets/buffer-create.mjs7
-rw-r--r--bench/snippets/concat.js2
-rw-r--r--bench/snippets/crypto-hasher.mjs2
-rw-r--r--bench/snippets/deep-equals.js2
-rw-r--r--bench/snippets/dns.node.mjs2
-rw-r--r--bench/snippets/dns.ts2
-rw-r--r--bench/snippets/escapeHTML.js4
-rw-r--r--bench/snippets/ffi-overhead.mjs2
-rw-r--r--bench/snippets/index-of.mjs2
-rw-r--r--bench/snippets/native-overhead.mjs2
-rw-r--r--bench/snippets/noop.js2
-rw-r--r--bench/snippets/object-values.mjs2
-rw-r--r--bench/snippets/performance-now-overhead.js4
-rw-r--r--bench/snippets/process.mjs2
-rw-r--r--bench/snippets/react-dom-render.bun.js2
-rw-r--r--bench/snippets/read-file.mjs2
-rw-r--r--bench/snippets/readdir.mjs2
-rw-r--r--bench/snippets/runner.mjs22
-rw-r--r--bench/snippets/sha512.js2
-rw-r--r--bench/snippets/sha512.node.mjs2
-rw-r--r--bench/snippets/spawn-hugemem.mjs2
-rw-r--r--bench/snippets/spawn-hugemem.node.mjs2
-rw-r--r--bench/snippets/spawn.mjs2
-rw-r--r--bench/snippets/spawn.node.mjs5
-rw-r--r--bench/snippets/stat.mjs2
-rw-r--r--bench/snippets/stderr.mjs2
-rw-r--r--bench/snippets/string-decoder.mjs2
-rw-r--r--bench/snippets/text-encoder.mjs2
-rw-r--r--bench/snippets/transpiler.mjs2
-rw-r--r--bench/snippets/write-file-huge.mjs2
-rw-r--r--bench/snippets/write-file.mjs2
-rw-r--r--bench/snippets/write.bun.js2
-rw-r--r--bench/snippets/write.node.mjs10
38 files changed, 72 insertions, 44 deletions
diff --git a/bench/snippets/array-arguments-slice.mjs b/bench/snippets/array-arguments-slice.mjs
index c4f676426..5d1139b8b 100644
--- a/bench/snippets/array-arguments-slice.mjs
+++ b/bench/snippets/array-arguments-slice.mjs
@@ -1,4 +1,4 @@
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
function doIt(...args) {
// we use .at() to prevent constant folding optimizations
diff --git a/bench/snippets/array-map.mjs b/bench/snippets/array-map.mjs
index 615770220..7b8bc6fdc 100644
--- a/bench/snippets/array-map.mjs
+++ b/bench/snippets/array-map.mjs
@@ -1,5 +1,5 @@
// https://github.com/oven-sh/bun/issues/1096
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
const identity = x => x;
diff --git a/bench/snippets/array-shift.mjs b/bench/snippets/array-shift.mjs
index 2b95bbc9d..703902670 100644
--- a/bench/snippets/array-shift.mjs
+++ b/bench/snippets/array-shift.mjs
@@ -1,4 +1,4 @@
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
var myArray = new Array(5);
bench("[1, 2, 3, 4, 5].shift()", () => {
diff --git a/bench/snippets/arraybuffersink.mjs b/bench/snippets/arraybuffersink.mjs
index 0e787dd56..571a86855 100644
--- a/bench/snippets/arraybuffersink.mjs
+++ b/bench/snippets/arraybuffersink.mjs
@@ -1,5 +1,5 @@
import { ArrayBufferSink } from "bun";
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
var short = "Hello World!";
var shortUTF16 = "Hello World 💕💕💕";
diff --git a/bench/snippets/assert.mjs b/bench/snippets/assert.mjs
index dc6c98d2e..3b3284e54 100644
--- a/bench/snippets/assert.mjs
+++ b/bench/snippets/assert.mjs
@@ -1,4 +1,4 @@
-import { bench, group, run } from "mitata";
+import { bench, group, run } from "./runner.mjs";
import * as assert from "assert";
bench("deepEqual", () => {
diff --git a/bench/snippets/buffer-create.mjs b/bench/snippets/buffer-create.mjs
index d4c19d8f8..fd36025c4 100644
--- a/bench/snippets/buffer-create.mjs
+++ b/bench/snippets/buffer-create.mjs
@@ -1,6 +1,9 @@
-import { bench, run } from "mitata";
+// @platform bun,node,deno
+import { bench, run } from "./runner.mjs";
+import process from "node:process";
+import { Buffer } from "node:buffer";
-const N = parseInt(process.argv.slice(2).at(0) || "10", 10);
+const N = parseInt(process.env.RUN_COUNTER ?? "10000", 10);
var isBuffer = new Buffer(0);
var isNOtBuffer = "not a buffer";
diff --git a/bench/snippets/concat.js b/bench/snippets/concat.js
index 310e67c37..76804dae1 100644
--- a/bench/snippets/concat.js
+++ b/bench/snippets/concat.js
@@ -1,4 +1,4 @@
-import { bench, group, run } from "mitata";
+import { bench, group, run } from "./runner.mjs";
import { readFileSync } from "fs";
import { allocUnsafe } from "bun";
diff --git a/bench/snippets/crypto-hasher.mjs b/bench/snippets/crypto-hasher.mjs
index 7ce3a846e..2f96dae7b 100644
--- a/bench/snippets/crypto-hasher.mjs
+++ b/bench/snippets/crypto-hasher.mjs
@@ -1,5 +1,5 @@
// so it can run in environments without node module resolution
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
import crypto from "node:crypto";
diff --git a/bench/snippets/deep-equals.js b/bench/snippets/deep-equals.js
index bbb663113..53dee81ab 100644
--- a/bench/snippets/deep-equals.js
+++ b/bench/snippets/deep-equals.js
@@ -1,4 +1,4 @@
-import { bench, group, run } from "mitata";
+import { bench, group, run } from "./runner.mjs";
import fastDeepEquals from "fast-deep-equal/es6/index";
// const Date = globalThis.Date;
diff --git a/bench/snippets/dns.node.mjs b/bench/snippets/dns.node.mjs
index 2796ad702..ffa58ff23 100644
--- a/bench/snippets/dns.node.mjs
+++ b/bench/snippets/dns.node.mjs
@@ -1,5 +1,5 @@
import { lookup, resolve } from "node:dns/promises";
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
bench("(cached) dns.lookup remote x 50", async () => {
var tld = "example.com";
diff --git a/bench/snippets/dns.ts b/bench/snippets/dns.ts
index 930cd3b83..7eeeea689 100644
--- a/bench/snippets/dns.ts
+++ b/bench/snippets/dns.ts
@@ -1,5 +1,5 @@
import { dns } from "bun";
-import { bench, run, group } from "mitata";
+import { bench, run, group } from "./runner.mjs";
async function forEachBackend(name, fn) {
group(name, () => {
diff --git a/bench/snippets/escapeHTML.js b/bench/snippets/escapeHTML.js
index 19570b9f6..809666d71 100644
--- a/bench/snippets/escapeHTML.js
+++ b/bench/snippets/escapeHTML.js
@@ -1,5 +1,5 @@
-import { group } from "mitata";
-import { bench, run } from "mitata";
+import { group } from "./runner.mjs";
+import { bench, run } from "./runner.mjs";
import { encode as htmlEntityEncode } from "html-entities";
import { escape as heEscape } from "he";
diff --git a/bench/snippets/ffi-overhead.mjs b/bench/snippets/ffi-overhead.mjs
index 382300ac6..bfb92634c 100644
--- a/bench/snippets/ffi-overhead.mjs
+++ b/bench/snippets/ffi-overhead.mjs
@@ -1,5 +1,5 @@
import { viewSource, dlopen, CString, ptr, toBuffer, toArrayBuffer, FFIType, callback } from "bun:ffi";
-import { bench, group, run } from "mitata";
+import { bench, group, run } from "./runner.mjs";
const types = {
returns_true: {
diff --git a/bench/snippets/index-of.mjs b/bench/snippets/index-of.mjs
index 8f501454d..04b9704e9 100644
--- a/bench/snippets/index-of.mjs
+++ b/bench/snippets/index-of.mjs
@@ -1,4 +1,4 @@
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
const input =
"Hello, World! foo bar baz qux quux corge grault garply waldo fred plugh xyzzy thud z 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".split(
diff --git a/bench/snippets/native-overhead.mjs b/bench/snippets/native-overhead.mjs
index 2a8dbd623..f1c0e24ad 100644
--- a/bench/snippets/native-overhead.mjs
+++ b/bench/snippets/native-overhead.mjs
@@ -1,4 +1,4 @@
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
// These are no-op C++ functions that are exported to JS.
const lazy = globalThis[Symbol.for("Bun.lazy")];
diff --git a/bench/snippets/noop.js b/bench/snippets/noop.js
index d4fc03680..9b9f1a1d1 100644
--- a/bench/snippets/noop.js
+++ b/bench/snippets/noop.js
@@ -1,4 +1,4 @@
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
var noop = globalThis[Symbol.for("Bun.lazy")]("noop");
var { function: noopFn, callback } = noop;
diff --git a/bench/snippets/object-values.mjs b/bench/snippets/object-values.mjs
index 5902d3a23..8dc62780b 100644
--- a/bench/snippets/object-values.mjs
+++ b/bench/snippets/object-values.mjs
@@ -24,7 +24,7 @@ const obj = {
w: 23,
};
-import { bench, group, run } from "mitata";
+import { bench, group, run } from "./runner.mjs";
var val = 0;
bench("Object.values(literal)", () => {
diff --git a/bench/snippets/performance-now-overhead.js b/bench/snippets/performance-now-overhead.js
index 12115f203..442d30563 100644
--- a/bench/snippets/performance-now-overhead.js
+++ b/bench/snippets/performance-now-overhead.js
@@ -1,5 +1,5 @@
-import { group } from "mitata";
-import { bench, run } from "mitata";
+import { group } from "./runner.mjs";
+import { bench, run } from "./runner.mjs";
bench("performance.now x 1000", () => {
for (let i = 0; i < 1000; i++) {
performance.now();
diff --git a/bench/snippets/process.mjs b/bench/snippets/process.mjs
index 8e7bc2a03..40bb48e0e 100644
--- a/bench/snippets/process.mjs
+++ b/bench/snippets/process.mjs
@@ -1,4 +1,4 @@
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
bench("process.stderr.write('hey')", () => {
process.stderr.write("hey");
diff --git a/bench/snippets/react-dom-render.bun.js b/bench/snippets/react-dom-render.bun.js
index 4f7855850..a9ac5d97d 100644
--- a/bench/snippets/react-dom-render.bun.js
+++ b/bench/snippets/react-dom-render.bun.js
@@ -1,4 +1,4 @@
-import { bench, group, run } from "mitata";
+import { bench, group, run } from "./runner.mjs";
import { renderToReadableStream } from "react-dom/server.browser";
import { renderToReadableStream as renderToReadableStreamBun } from "react-dom/server";
diff --git a/bench/snippets/read-file.mjs b/bench/snippets/read-file.mjs
index 3e42e6a73..b808dee79 100644
--- a/bench/snippets/read-file.mjs
+++ b/bench/snippets/read-file.mjs
@@ -1,5 +1,5 @@
import { readFileSync, writeFileSync } from "node:fs";
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
var short = (function () {
const text = "Hello World!";
diff --git a/bench/snippets/readdir.mjs b/bench/snippets/readdir.mjs
index 70c3e960c..7146decb8 100644
--- a/bench/snippets/readdir.mjs
+++ b/bench/snippets/readdir.mjs
@@ -1,5 +1,5 @@
import { readdirSync } from "fs";
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
import { argv } from "process";
const dir = argv.length > 2 ? argv[2] : "/tmp";
diff --git a/bench/snippets/runner.mjs b/bench/snippets/runner.mjs
new file mode 100644
index 000000000..4f6e29fba
--- /dev/null
+++ b/bench/snippets/runner.mjs
@@ -0,0 +1,22 @@
+import * as Mitata from "../node_modules/mitata/src/cli.mjs";
+import process from "node:process";
+
+const asJSON = !!process?.env?.BENCHMARK_RUNNER;
+
+export function run(opts = {}) {
+ opts ??= {};
+
+ if (asJSON) {
+ opts.json = true;
+ }
+
+ return Mitata.run(opts);
+}
+
+export function bench(name, fn) {
+ return Mitata.bench(name, fn);
+}
+
+export function group(name, fn) {
+ return Mitata.group(name, fn);
+}
diff --git a/bench/snippets/sha512.js b/bench/snippets/sha512.js
index ae8b4ccc9..ac162dc24 100644
--- a/bench/snippets/sha512.js
+++ b/bench/snippets/sha512.js
@@ -1,4 +1,4 @@
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
import { SHA512 } from "bun";
bench('SHA512.hash("hello world")', () => {
diff --git a/bench/snippets/sha512.node.mjs b/bench/snippets/sha512.node.mjs
index 694019711..3c3ac1697 100644
--- a/bench/snippets/sha512.node.mjs
+++ b/bench/snippets/sha512.node.mjs
@@ -1,4 +1,4 @@
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
import { createHash } from "crypto";
bench('createHash("sha256").update("hello world").digest()', () => {
diff --git a/bench/snippets/spawn-hugemem.mjs b/bench/snippets/spawn-hugemem.mjs
index d6de9b08c..177382c74 100644
--- a/bench/snippets/spawn-hugemem.mjs
+++ b/bench/snippets/spawn-hugemem.mjs
@@ -1,5 +1,5 @@
import { spawnSync } from "bun";
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
var memory = new Uint8Array(128 * 1024 * 1024);
memory.fill(10);
diff --git a/bench/snippets/spawn-hugemem.node.mjs b/bench/snippets/spawn-hugemem.node.mjs
index d2a728e60..d33a5d4bd 100644
--- a/bench/snippets/spawn-hugemem.node.mjs
+++ b/bench/snippets/spawn-hugemem.node.mjs
@@ -1,5 +1,5 @@
import { spawnSync } from "child_process";
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
var memory = new Uint8Array(128 * 1024 * 1024);
memory.fill(10);
diff --git a/bench/snippets/spawn.mjs b/bench/snippets/spawn.mjs
index 2b01999a6..9c259b096 100644
--- a/bench/snippets/spawn.mjs
+++ b/bench/snippets/spawn.mjs
@@ -1,5 +1,5 @@
import { spawnSync } from "bun";
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
bench("spawnSync echo hi", () => {
spawnSync({ cmd: ["echo", "hi"] });
diff --git a/bench/snippets/spawn.node.mjs b/bench/snippets/spawn.node.mjs
index 74a398b4c..d848b9b97 100644
--- a/bench/snippets/spawn.node.mjs
+++ b/bench/snippets/spawn.node.mjs
@@ -1,5 +1,6 @@
-import { spawnSync } from "child_process";
-import { bench, run } from "mitata";
+// @platform bun,node,deno
+import { spawnSync } from "node:child_process";
+import { bench, run } from "./runner.mjs";
bench("spawnSync echo hi", () => {
spawnSync("echo", ["hi"], { encoding: "buffer", shell: false });
diff --git a/bench/snippets/stat.mjs b/bench/snippets/stat.mjs
index 92bdf182f..17d6a68c8 100644
--- a/bench/snippets/stat.mjs
+++ b/bench/snippets/stat.mjs
@@ -1,5 +1,5 @@
import { readdirSync, statSync } from "fs";
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
import { argv } from "process";
const dir = argv.length > 2 ? argv[2] : "/tmp";
diff --git a/bench/snippets/stderr.mjs b/bench/snippets/stderr.mjs
index ebfcdb423..f4669905b 100644
--- a/bench/snippets/stderr.mjs
+++ b/bench/snippets/stderr.mjs
@@ -1,4 +1,4 @@
-import { run, bench } from "mitata";
+import { run, bench } from "./runner.mjs";
var writer = globalThis.Bun ? Bun.stderr.writer() : undefined;
if (writer)
diff --git a/bench/snippets/string-decoder.mjs b/bench/snippets/string-decoder.mjs
index 8f7cb31fb..b00b7b67d 100644
--- a/bench/snippets/string-decoder.mjs
+++ b/bench/snippets/string-decoder.mjs
@@ -1,4 +1,4 @@
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
import { StringDecoder } from "string_decoder";
var short = Buffer.from("Hello World!");
diff --git a/bench/snippets/text-encoder.mjs b/bench/snippets/text-encoder.mjs
index cee84bf25..d0f5c40a4 100644
--- a/bench/snippets/text-encoder.mjs
+++ b/bench/snippets/text-encoder.mjs
@@ -1,4 +1,4 @@
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
var short = "Hello World!";
var shortUTF16 = "Hello World 💕💕💕";
diff --git a/bench/snippets/transpiler.mjs b/bench/snippets/transpiler.mjs
index ab4b29dc5..3a5c57d0a 100644
--- a/bench/snippets/transpiler.mjs
+++ b/bench/snippets/transpiler.mjs
@@ -1,7 +1,7 @@
import { readFileSync } from "fs";
import { dirname } from "path";
import { fileURLToPath } from "url";
-import { bench, run, group } from "mitata";
+import { bench, run, group } from "./runner.mjs";
import { createRequire } from "module";
const require = createRequire(import.meta.url);
const esbuild_ = require("esbuild/lib/main");
diff --git a/bench/snippets/write-file-huge.mjs b/bench/snippets/write-file-huge.mjs
index 62790c6eb..fe874c939 100644
--- a/bench/snippets/write-file-huge.mjs
+++ b/bench/snippets/write-file-huge.mjs
@@ -1,6 +1,6 @@
import { Buffer } from "node:buffer";
import { writeFile } from "node:fs/promises";
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
var hugeFile = Buffer.alloc(1024 * 1024 * 64);
var medFile = Buffer.alloc(1024 * 1024 * 16);
diff --git a/bench/snippets/write-file.mjs b/bench/snippets/write-file.mjs
index b13104bfc..4417c817c 100644
--- a/bench/snippets/write-file.mjs
+++ b/bench/snippets/write-file.mjs
@@ -1,5 +1,5 @@
import { readFileSync, writeFileSync } from "node:fs";
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
var short = "Hello World!";
var shortUTF16 = "Hello World 💕💕💕";
diff --git a/bench/snippets/write.bun.js b/bench/snippets/write.bun.js
index 190604a44..67fbbe3b2 100644
--- a/bench/snippets/write.bun.js
+++ b/bench/snippets/write.bun.js
@@ -1,4 +1,4 @@
-import { bench, run } from "mitata";
+import { bench, run } from "./runner.mjs";
import { write } from "bun";
import { openSync } from "fs";
diff --git a/bench/snippets/write.node.mjs b/bench/snippets/write.node.mjs
index bafaceecb..73a6f494e 100644
--- a/bench/snippets/write.node.mjs
+++ b/bench/snippets/write.node.mjs
@@ -1,7 +1,9 @@
-import { bench, run } from "mitata";
-import { openSync } from "fs";
-import { writeFile } from "fs/promises";
-import { writeSync as write } from "fs";
+// @platform node, bun, deno
+import { bench, run } from "./runner.mjs";
+import { Buffer } from "node:buffer";
+import { openSync } from "node:fs";
+import { writeFile } from "node:fs/promises";
+import { writeSync as write } from "node:fs";
bench("writeFile(/tmp/foo.txt, short string)", async () => {
await writeFile("/tmp/foo.txt", "short string", "utf8");