📜  Node.js Buffer.allocUnsafeSlow() 方法

📅  最后修改于: 2022-05-13 01:56:31.715000             🧑  作者: Mango

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