allocUnsafe
BufferConstructor.allocUnsafe
**allocUnsafe**(size): [Buffer](/references/product/variables/Buffer-1)
Allocates a new Buffer
of size
bytes. If size
is larger than constants.MAX_LENGTH or smaller than 0, ERR_OUT_OF_RANGE
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)
,
and Buffer.concat()
only when size
is less than or equal toBuffer.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