diff options
author | 2023-05-10 21:37:08 -0700 | |
---|---|---|
committer | 2023-05-10 21:37:08 -0700 | |
commit | e1c6adc73700aaa9012a1e40b022af3e3df8a9ad (patch) | |
tree | e8f8abeec757299e3d3f6ca85d3e82a080b261ae /bench/snippets | |
parent | 5e0eedccb06a6991e48220bd4df703d725f65e83 (diff) | |
download | bun-e1c6adc73700aaa9012a1e40b022af3e3df8a9ad.tar.gz bun-e1c6adc73700aaa9012a1e40b022af3e3df8a9ad.tar.zst bun-e1c6adc73700aaa9012a1e40b022af3e3df8a9ad.zip |
Prepare to run these automatically
Diffstat (limited to 'bench/snippets')
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"); |