Node.js Buffer.allocUnsafeSlow() 方法
缓冲区是一种临时内存存储器,用于在将数据从一个地方移动到另一个地方时存储数据。这就像整数数组。 Buffer.allocUnsafeSlow()方法分配给定大小的新缓冲区实例,但不对其进行初始化。
Buffer.allocUnsafeSlow() 方法用于分配给定大小(以字节为单位)的新 Buffer。如果给定大小大于 buffer.constants.MAX_LENGTH 或小于 0,则抛出 ERR_INVALID_OPT_VALUE。如果大小为零,则创建一个长度为零的缓冲区。
此方法与 Buffer.allocUnsafe() 方法不同。在 allocUnsafe() 方法中,如果缓冲区大小小于 4KB,它会自动从预分配的缓冲区中删除所需的缓冲区,即它不会初始化新的缓冲区。它通过不分配许多小型 Buffer 实例来节省内存。但是,如果开发人员需要在中间时间段内保留一些开销内存,则可以使用allocUnsafeSlow()方法。
句法:
buffer.allocUnsafeSlow( size )
参数:此方法接受单个参数大小,其中包含所需的缓冲区大小。
注意:如果 size 不是数字,此方法将引发 TypeError。
下面的例子说明了 Node.js 中Buffer.allocUnsafeSlow() 方法的使用:
示例 1:
// Node.js program to demonstrate the
// Buffer.allocUnsafeSlow() Method
// Creating a buffer
const buffer = Buffer.allocUnsafe(10);
// Display the buffer containing random values
console.log("allocUnsafeSlow() Method");
console.log(buffer);
输出:
allocUnsafeSlow() Method
示例 2:
// Node.js program to demonstrate the
// Buffer.allocUnsafeSlow() Method
// Creating a buffer
const buffer = Buffer.allocUnsafe(4);
// Print: random string everytime we run the
// program as we have not added
// anything to the buffer yet
console.log(buffer.toString());
for (let i = 0; i < 4; i++) {
//filling the values in buffer
buffer[i] = i + 97;
}
// Adds and Print: 'abcd' as 97 98 99 100 101
// are their respective ASCII values
console.log(buffer.toString());
输出:
rite
abcd
注意:以上程序将使用node index.js
命令编译运行。
参考: https://nodejs.org/api/buffer.html#buffer_class_method_buffer_allocunsafeslow_size