javascript / expert
Snippet
Memory Ownership Transfers in Node.js via ArrayBuffer Detachment
ECMAScript ArrayBuffer.prototype.transfer() enables zero-copy memory movement by detaching the source buffer and transferring ownership to a new ArrayBuffer instance, preventing costly memory allocations.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
const originalBuffer = new ArrayBuffer(1024 * 1024);const view = new Uint8Array(originalBuffer);view[0] = 255;const transferredBuffer = originalBuffer.transfer();console.log(originalBuffer.detached); // trueconsole.log(transferredBuffer.byteLength); // 1048576console.log(new Uint8Array(transferredBuffer)[0]); // 255
nodejs
Breakdown
1
const transferredBuffer = originalBuffer.transfer();
Transfers ownership of the underlying memory block, detaching the original buffer zero-copy.
2
console.log(originalBuffer.detached); // true
Verifies that the original ArrayBuffer has been detached and can no longer be accessed.
3
console.log(new Uint8Array(transferredBuffer)[0]); // 255
Accesses the transferred memory block without copying the underlying bytes.