zoukankan      html  css  js  c++  java
  • Buffer.allocUnsafe()

    Buffer.allocUnsafe(size)

    • size {Number}

    分配一个 size 字节大小的新的非零填充(non-zero-filled)的 Buffer。size 必须小于等于 require('buffer').kMaxLength(在64位架构上 kMaxLength 的大小是 (2^31)-1)的值,否则将抛出一个 RangeError 的错误。如果 size 小于 0 将创建一个特定的 0 长度(zero-length )的 Buffer。
    以这种方式创建的 Buffer 实例的底层内存是没被初始化过的。新创建的 Buffer 的内容是未知的,并可能包含敏感数据。通过使用 buf.fill(0) 将这个 Buffer 初始化为零。

    const buf = Buffer.allocUnsafe(5);
    console.log(buf);
    // <Buffer 78 e0 82 02 01>
    // (octets will be different, every time)
    buf.fill(0);
    console.log(buf);
    // <Buffer 00 00 00 00 00>
    

    如果 size 不是一个数字则抛出一个 TypeError 错误。
    请注意,Buffer 模块预分配一个大小为 Buffer.poolSize 的内部 Buffer 实例作为一个快速分配池,仅当 size 小于等于 Buffer.poolSize >> 1 (浮点类型的 Buffer.poolSize 应该除以2)时,用于分配通过 Buffer.allocUnsafe(size) 创建的新的 Buffer 实例(和 new Buffer(size) 构造函数)。默认的 Buffer.poolSize 值为 8192 ,但可以被修改。+

    使用这个预分配的内部内存池是调用 Buffer.alloc(size, fill) 和 Buffer.allocUnsafe(size).fill(fill) 的关键不同之处。特别是,如果 size 小于或等于 Buffer.poolSize 的一半时,Buffer.allocUnsafe(size).fill(fill) 将使用内部的 Buffer 池,而 Buffer.alloc(size, fill) 将绝不会使用这个内部的 Buffer 池。在一个应用程序需要 Buffer.allocUnsafe(size) 提供额外的性能时,(了解)这个细微的不同之处是非常重要的。

  • 相关阅读:
    DATA_PUMP_DIR impdp 指定导出目录
    MasScan
    VMWare:vSphere6 企业版参考序列号
    ORA-12519: TNS:no appropriate service handler found 解决
    百度IOT
    IPMI远程管理一点记录
    关于parallel(并行)的几个基本常识
    hdu 4811 数学 不难
    关于i++ 和 ++i
    sqlplus中怎么将你全部的操作和结果记录保存到你指定的文件里
  • 原文地址:https://www.cnblogs.com/lalalagq/p/9908501.html
Copyright © 2011-2022 走看看