mirror of
https://github.com/denoland/deno.git
synced 2025-09-27 12:49:10 +00:00
refactor: asynchronous blob backing store (#10969)
Co-authored-by: Luca Casonato <hello@lcas.dev>
This commit is contained in:
parent
ea87d860be
commit
2c0b0e45b7
28 changed files with 652 additions and 269 deletions
11
cli/tests/blob_gc_finalization.js
Normal file
11
cli/tests/blob_gc_finalization.js
Normal file
|
@ -0,0 +1,11 @@
|
|||
// This test creates 1024 blobs of 128 MB each. This will only work if the blobs
|
||||
// and their backing data is GCed as expected.
|
||||
for (let i = 0; i < 1024; i++) {
|
||||
// Create a 128MB byte array, and then a blob from it.
|
||||
const buf = new Uint8Array(128 * 1024 * 1024);
|
||||
new Blob([buf]);
|
||||
// It is very important that there is a yield here, otherwise the finalizer
|
||||
// for the blob is not called and the memory is not freed.
|
||||
await new Promise((resolve) => setTimeout(resolve, 0));
|
||||
}
|
||||
console.log("GCed all blobs");
|
Loading…
Add table
Add a link
Reference in a new issue