allocUnsafe
BufferConstructor.allocUnsafe
allocUnsafe(size
): Buffer
Allocates a new Buffer
of size
bytes. If size
is larger than constants.MAX_LENGTH or smaller than 0, ERR_INVALID_ARG_VALUE
is thrown.
The underlying memory for Buffer
instances created in this way is not
initialized. The contents of the newly created Buffer
are unknown and may contain sensitive data. Use Buffer.alloc()
instead to initializeBuffer
instances with zeroes.
A TypeError
will be thrown if size
is not a number.
The Buffer
module pre-allocates an internal Buffer
instance of
size Buffer.poolSize
that is used as a pool for the fast allocation of newBuffer
instances created using Buffer.allocUnsafe()
,Buffer.from(array)
, Buffer.concat()
, and the
deprecatednew Buffer(size)
constructor only when size
is less than or equal
to Buffer.poolSize >> 1
(floor of Buffer.poolSize
divided by two).
Use of this pre-allocated internal memory pool is a key difference between
calling Buffer.alloc(size, fill)
vs. Buffer.allocUnsafe(size).fill(fill)
.
Specifically, Buffer.alloc(size, fill)
will never use the internal Buffer
pool, while Buffer.allocUnsafe(size).fill(fill)
will use the internalBuffer
pool if size
is less
than or equal to half Buffer.poolSize
. The
difference is subtle but can be important when an application requires the
additional performance that Buffer.allocUnsafe()
provides.
Parameters
size
numberRequiredBuffer
.Returns
Since
v5.10.0