aboutsummaryrefslogtreecommitdiff
path: root/bench/snippets (follow)
AgeCommit message (Collapse)AuthorFilesLines
2023-07-19Implement `AsyncLocalStorage` (#3089)Gravatar dave caruso 1-1/+1
* work to get async local storage working. * a * a * everything but queueMicrotask * sdfghj * . * finish * tests * test * ok * done * im so stupid * Upgrade WebKit * refactor * refactor * changes requested * oops * cool * fix runInAsyncScope
2023-07-17Fix memory leak in `await new Response(latin1String).arrayBuffer()` and ↵Gravatar Jarred Sumner 2-0/+259
`await Response.json(obj).json()` (#3656) ❯ mem bun --smol response-arrayBuffer.mjs cpu: Apple M1 Max runtime: bun 0.6.15 (arm64-darwin) benchmark time (avg) (min … max) p75 p99 p995 --------------------------------------------------------------------------------------------------- ----------------------------- new Response().arrayBuffer() (new string each call, latin1) 12.9 µs/iter (625 ns … 4.18 ms) 1 µs 567.17 µs 711.79 µs new Response().arrayBuffer() (new string each call, utf16) 12.85 µs/iter (1.67 µs … 1.56 ms) 2.17 µs 462.75 µs 621.13 µs new Response().arrayBuffer() (existing string, latin1) 6.53 µs/iter (6.21 µs … 7.07 µs) 6.64 µs 7.07 µs 7.07 µs Peak memory usage: 49 MB bun on  jarred/memory-leak-fix took 2s ❯ mem bun response-arrayBuffer.mjs cpu: Apple M1 Max runtime: bun 0.6.15 (arm64-darwin) benchmark time (avg) (min … max) p75 p99 p995 --------------------------------------------------------------------------------------------------- ----------------------------- new Response().arrayBuffer() (new string each call, latin1) 1.2 µs/iter (1.04 µs … 1.42 µs) 1.22 µs 1.42 µs 1.42 µs new Response().arrayBuffer() (new string each call, utf16) 2.74 µs/iter (2.42 µs … 6.37 µs) 2.68 µs 6.37 µs 6.37 µs new Response().arrayBuffer() (existing string, latin1) 746.37 ns/iter (643.82 ns … 1.04 µs) 776.11 ns 1.04 µs 1.04 µs Peak memory usage: 104 MB bun on  jarred/memory-leak-fix took 2s ❯ mem ~/.bun/bin/bun response-arrayBuffer.mjs cpu: Apple M1 Max runtime: bun 0.6.15 (arm64-darwin) benchmark time (avg) (min … max) p75 p99 p995 --------------------------------------------------------------------------------------------------- ----------------------------- new Response().arrayBuffer() (new string each call, latin1) 1.69 µs/iter (1.56 µs … 2.1 µs) 1.73 µs 2.1 µs 2.1 µs new Response().arrayBuffer() (new string each call, utf16) 2.65 µs/iter (2.47 µs … 3.17 µs) 2.69 µs 3.17 µs 3.17 µs new Response().arrayBuffer() (existing string, latin1) 667.67 ns/iter (547.67 ns … 1.28 µs) 694.21 ns 1.28 µs 1.28 µs Peak memory usage: 2735 MB bun on  jarred/memory-leak-fix took 2s ❯ mem ~/.bun/bin/bun --smol response-arrayBuffer.mjs cpu: Apple M1 Max runtime: bun 0.6.15 (arm64-darwin) benchmark time (avg) (min … max) p75 p99 p995 --------------------------------------------------------------------------------------------------- ----------------------------- new Response().arrayBuffer() (new string each call, latin1) 13.51 µs/iter (541 ns … 3.2 ms) 1.92 µs 553.42 µs 709.92 µs new Response().arrayBuffer() (new string each call, utf16) 13.07 µs/iter (1.71 µs … 3.43 ms) 2.13 µs 451.21 µs 651.67 µs new Response().arrayBuffer() (existing string, latin1) 6.25 µs/iter (5.79 µs … 6.81 µs) 6.4 µs 6.81 µs 6.81 µs Peak memory usage: 292 MB Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-1720% faster `deserialize` (#3655)Gravatar Jarred Sumner 1-9/+112
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-16Add serialize snippetGravatar Jarred Sumner 1-0/+25
2023-07-16Add structuredClone microbenchmarkGravatar Jarred Sumner 1-0/+39
2023-07-11Fix another crash in Error.captureStackTrace (#3611)bun-v0.6.14Gravatar Jarred Sumner 1-0/+12
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-09Implement process.memoryUsage() and process.cpuUsage() (#3586)Gravatar Jarred Sumner 1-0/+33
* Implement process.memoryUsage() and process.cpuUsage() * Avoid mi_process_info * Update bench * Update Process.cpp * fixup * More tests + linux fixup * Skip it for now since it seems less accurate --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-04Create readfile-not-found.mjsGravatar Jarred Sumner 1-0/+17
2023-07-01Make `buffer.toString("base64")` 4x faster (#3486)Gravatar Jarred Sumner 1-0/+14
* Add libbase64 * Add bench * Update licensing.md --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-26Update crypto.mjsGravatar Jarred Sumner 1-8/+2
2023-06-26`.randomInt()` support (#3357)Gravatar Silas Rech 1-0/+4
* Add initial .randomInt() fallback * Add basic .randomInt() test * Attempt creating a native implementation * Switch to JSC.wrapWithHasContainer * Switch to .jsNumberFromUint64(), it seems like using just .jsNumber() causes the number to overflow in some cases * Regenerate out folder after rebasing
2023-06-24Rewrite Bun's runtime CommonJS loader (#3379)Gravatar Jarred Sumner 1-0/+60
* wip changes for CommonJS * this rewrite is almost complete * even more code * wip * Remove usages of `import.meta.require` from builtins * Remove usages of require * Regenerate * :scissors: builtin rewrite commonjs in printer * Use lazy custom getters for import.meta * fixups * Remove depd * ugh * still crashing * fixup undici * comment out import.meta.require.resolve temporarily not a real solution but it stops the crashes * Redo import.meta.primordials * Builtins now have a `builtin://` protocol in source origin * Seems to work? * Finsih getting rid of primordials * switcharoo * No more function * just one more bug * Update launch.json * Implement `require.main` * :scissors: * Bump WebKit * Fixup import cycles * Fixup improt cycles * export more things * Implement `createCommonJSModule` builtin * More exports * regenerate * i broke some stuff * some of these tests work now * We lost the encoding * Sort of fix zlib * Sort of fix util * Update events.js * bump * bump * bump * Fix missing export in fs * fix some bugs with builtin esm modules (stream, worker_threads, events). its not perfect yet. * fix some other internal module bugs * oops * fix some extra require default stuff * uncomment this file but it crsahes on my machine * tidy code here * fixup tls exports * make simdutf happier * Add hasPrefix binding * Add test for `require.main` * Fix CommonJS evaluation order race condition * Make node:http load faster * Add missing exports to tls.js * Use the getter * Regenerate builtins * Fix assertion failure in Bun.write() * revamp dotEnv parser (#3347) - fixes `strings.indexOfAny()` - fixes OOB array access fixes #411 fixes #2823 fixes #3042 * fix tests for `expect()` (#3384) - extend test job time-out for `darwin-aarch64` * `expect().resolves` and `expect().rejects` (#3318) * Move expect and snapshots to their own files * expect().resolves and expect().rejects * Fix promise being added to unhandled rejection list * Handle timeouts in expect(<promise>) * wip merge * Fix merge issue --------- Co-authored-by: Jarred Sumner <jarred@jarredsumner.com> Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> * fixup min/memcopy (#3388) * Fix crash in builtins * Don't attempt to evaluate modules with no source code * Update WebCoreJSBuiltins.cpp * Update WebCoreJSBuiltins.cpp * Update WebCoreJSBuiltins.cpp * Fix crash * cleanup * Fix test cc @paperdave * Fixup Undici * Fix issue in node:http * Create util-deprecate.mjs * Fix several bugs * Use the identifier * Support error.code in `util.deprecate` * make the CJs loader slightly more resilient * Update WebCoreJSBuiltins.cpp * Fix macros --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Co-authored-by: dave caruso <me@paperdave.net> Co-authored-by: Alex Lam S.L <alexlamsl@gmail.com> Co-authored-by: Ashcon Partovi <ashcon@partovi.net> Co-authored-by: Ciro Spaciari <ciro.spaciari@gmail.com>
2023-06-18Fix a bunch of bugs (#3352)Gravatar Jarred Sumner 1-1/+7
* Fix a bunch of bugs * undo that one * Fix crash in readdir() * woops * woops * Add comment * :scissors: * Make `readlink()` and `realpath` use much less memory * Update BunString.cpp * woopsie * Unnecessary * Don't commit these --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-15Tweak CommonJS output (#3320)Gravatar Jarred Sumner 1-0/+65
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-03Fix crash with path parse in win32 (#3187)bun-v0.6.7Gravatar Jarred Sumner 1-3/+3
* Update CommonJSModuleRecord.cpp * smaller * [node:path] Fix crash, mark TODO --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-01Fix streams breaking on reverted EventEmitter / Make Discord.js work (#2913)Gravatar dave caruso 5-108/+55
* Revert "Revert "use a lazyily initialized stream for `node:crypto` `createHash` (#2652)"" This reverts commit 613bb4822ee8f4fbfd78aef391e2db8f07659a6f. * Revert "Revert "implement `node:events` in javascript (#2604)"" This reverts commit a4d0a1961abe0c6073e15cc6f7c0601b74f2e3f7. * oops * fix entrypoints stuff * fix hash copy * use native events for node streams and crypto * requested changes * oops * make discord.js work * fix webkit hash * headers tojson
2023-05-19Add snippet for node:vmGravatar Jarred Sumner 1-0/+42
2023-05-17Update json-parse-stringify.mjsbun-v0.6.2Gravatar Jarred Sumner 1-2/+2
2023-05-17microbenchmark for json.parse / stringifyGravatar Jarred Sumner 1-0/+57
2023-05-11forgot to commit thisGravatar Jarred Sumner 1-5/+23
2023-05-10serializeGravatar Jarred Sumner 1-1/+48
2023-05-10Add versionGravatar Jarred Sumner 1-2/+8
2023-05-10Implement the benchmark snippet runner minus the sqlite serialization stepGravatar Jarred Sumner 5-3/+177
2023-05-10Prepare to run these automaticallyGravatar Jarred Sumner 38-44/+72
2023-04-27Add microbenchmarkGravatar Jarred Sumner 1-0/+42
2023-04-21Revert "use a lazyily initialized stream for `node:crypto` `createHash` (#2652)"Gravatar Jarred Sumner 2-55/+0
This reverts commit 3a2fd65f20d3b4e99c89f789acec5e5e40615008.
2023-04-21Revert "implement `node:events` in javascript (#2604)"Gravatar Jarred Sumner 3-0/+108
This reverts commit 96a2ed1040d5a0ca51ae41267cba4f8e5d0a6142.
2023-04-18implement `node:events` in javascript (#2604)Gravatar dave caruso 3-108/+0
* initial event emitter reimplementation * implement most of node:events. tests passing * work on emitter * fix importing node:events * work on event emitter tests * event work * event work * event stuff and experimenting with a lazy createHash * cleanup crypto stuff i had on this branch * finish event stuff up * fix error monitor * validate listeners are functions * changes requested
2023-04-13use a lazyily initialized stream for `node:crypto` `createHash` (#2652)Gravatar dave caruso 2-0/+55
* lazy hash * finish up crypto stuff * remove lockfiles * ok * add pipe test * update this lockfile * remove unrelated crypto benchmark from this file
2023-03-03Update react-dom-render.bun.jsGravatar Jarred Sumner 1-2/+2
2023-03-02Add a zig fmt action (#2277)Gravatar Jarred Sumner 18-237/+97
* Add a zig fmt action * add failing file * Setup prettier better * Update prettier-fmt.yml * Fail on error * Update prettier-fmt.yml * boop * boop2 * tar.gz * Update zig-fmt.yml * Update zig-fmt.yml * Update zig-fmt.yml * Update zig-fmt.yml * Update zig-fmt.yml * boop * Update prettier-fmt.yml * tag * newlines * multiline * fixup * Update zig-fmt.yml * update it * fixup * both * w * Update prettier-fmt.yml * prettier all the things * Update package.json * zig fmt * ❌ ✅ * bump * . * quotes * fix prettier ignore * once more * Update prettier-fmt.yml * Update fallback.ts * consistentcy --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-03-02Ensure prettier knows where to lookGravatar Jarred Sumner 1-1/+2
2023-02-26Update emitter.mjsGravatar Jarred Sumner 1-1/+7
2023-02-26Add callback to benchGravatar Jarred Sumner 1-1/+12
2023-02-25make emitter bench work in nodeGravatar Jarred Sumner 1-14/+13
2023-02-17update `bun.lockb`s (#2101)Gravatar Alex Lam S.L 1-0/+0
2023-02-13Add FormData bench snippetGravatar Jarred Sumner 1-0/+34
2023-02-06Update text-decoder.mjsGravatar Jarred Sumner 1-4/+1
2023-02-06bumpGravatar Jarred Sumner 1-0/+17
2023-01-29Update buffer-create.mjsGravatar Jarred Sumner 1-0/+5
2023-01-28Support running WASI (WebAssembly) files using `bun run` (#1929)Gravatar Jarred Sumner 1-0/+25
* another micro bench * Support running WASI --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-01-28Fix if condition always being true (#1923)Gravatar u9g 1-1/+1
2023-01-233x faster `Buffer.isBuffer`Gravatar Jarred Sumner 1-1/+17
2023-01-23Update benchGravatar Jarred Sumner 1-51/+95
2023-01-22Add some more emitters to the benchmarkGravatar Jarred Sumner 3-55/+71
2023-01-21Implement `process.execArgv`Gravatar Jarred Sumner 1-2/+2
2023-01-21Update buffer-create.mjsGravatar Jarred Sumner 1-2/+21
2023-01-17Update crypto-hasher.mjsGravatar Jarred Sumner 1-2/+8
2023-01-07Implement DNS module (#1691)Gravatar Jarred Sumner 2-0/+152
* Boilerplate for DNS stuff * Add c-ares * lookup * make * Implement dns.lookup * Create c-ares * wip * normalize * repro * Revert "repro" This reverts commit 8b93e0c295b335b8882a9601da47720348549beb. * Implement macOS `getaddrinfo_async_start` * embiggen * Update string_immutable.zig * Update Makefile * alright * Update .gitignore * Add types * more ccache * Update Dockerfile * Update Dockerfile * Update Dockerfile * Update bun.d.ts Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-01-05Update tcp-echo.bun.tsGravatar Jarred Sumner 1-13/+15