| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import { abortAfterAny } from "../../src/util/abort"
- const MB = 1024 * 1024
- const ITERATIONS = 50
- const heap = () => {
- Bun.gc(true)
- return process.memoryUsage().heapUsed / MB
- }
- const server = Bun.serve({
- port: 0,
- fetch() {
- return new Response("hello from local", {
- headers: {
- "content-type": "text/plain",
- },
- })
- },
- })
- const url = `http://127.0.0.1:${server.port}`
- async function run() {
- const { signal, clearTimeout } = abortAfterAny(30000, new AbortController().signal)
- try {
- const response = await fetch(url, { signal })
- await response.text()
- } finally {
- clearTimeout()
- }
- }
- try {
- await run()
- Bun.sleepSync(100)
- const baseline = heap()
- for (let i = 0; i < ITERATIONS; i++) {
- await run()
- }
- Bun.sleepSync(100)
- const after = heap()
- process.stdout.write(JSON.stringify({ baseline, after, growth: after - baseline }))
- } finally {
- server.stop(true)
- process.exit(0)
- }
|