mirror of
https://github.com/oven-sh/bun
synced 2026-02-10 02:48:50 +00:00
* Fix memory leak in require() and add test * Mark fixtures as generated code * Add optimization for large files * Fix small memory leak --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
30 lines
799 B
JavaScript
Generated
30 lines
799 B
JavaScript
Generated
import { createRequire } from "node:module";
|
|
const require = createRequire(import.meta.url);
|
|
const dest = await import.meta.resolve("./esm-leak-fixture-large-ast.mjs");
|
|
|
|
if (typeof Bun !== "undefined") Bun.gc(true);
|
|
for (let i = 0; i < 5; i++) {
|
|
delete require.cache[dest];
|
|
await import(dest);
|
|
}
|
|
if (typeof Bun !== "undefined") Bun.gc(true);
|
|
const baseline = process.memoryUsage.rss();
|
|
|
|
for (let i = 0; i < 50; i++) {
|
|
delete require.cache[dest];
|
|
await import(dest);
|
|
}
|
|
if (typeof Bun !== "undefined") Bun.gc(true);
|
|
|
|
setTimeout(() => {
|
|
let diff = process.memoryUsage.rss() - baseline;
|
|
diff = (diff / 1024 / 1024) | 0;
|
|
console.log({ leaked: diff + " MB" });
|
|
if (diff > 120) {
|
|
console.log("\n--fail--\n");
|
|
process.exit(1);
|
|
} else {
|
|
console.log("\n--pass--\n");
|
|
}
|
|
}, 16);
|