美文网首页
node中的Buffer

node中的Buffer

作者: 夏夏夏夏顿天 | 来源:发表于2018-10-09 15:26 被阅读14次

    Buffer是什么

    buffer翻译的意思是缓冲区

    在node中,Buffer是用于存储二进制数据的,在内存中新开辟一块天地,在堆以外的内存

    Buffer应用场景

    当数据流很大的时候,进行buffer缓存一下,进行进一步获取

    buffer不在node进程内存里面,所以可以用于存储大的文件,但是还是有限制 的32位系统的大约是1G,64位的系统 大约是2G

    如何使用

    如何创建Buffer

    流会隐形产生buffer,也可以手动创建的buffer

    手动创建buffer

    这个还得分类型哦,创建

    1. Buffer存储数据确定

    Buffer.from(obj) // obj支持的类型string, buffer, arrayBuffer, array, or array-like object

    Buffer.from(1234);
    
    buffer.js:208
        throw new errors.TypeError(
        ^
    
    TypeError [ERR_INVALID_ARG_TYPE]: The "value" argument must not be of type number. Received type number
        at Function.from (buffer.js:208:11)
        ...
        
    
    

    若要传入数字可以采用传入数组的方式:

    const buf = Buffer.from([1, 2, 3, 4]);
    console.log(buf); //  <Buffer 01 02 03 04>
    
    

    Buffer存储数据未确定

    Buffer.alloc、Buffer.allocUnsafe、Buffer.allocUnsafeSlow

    Buffer.alloc会用0值填充已分配的内存,所以相比后两者速度上要慢,但是也较为安全。当然也可以通过--zero-fill-buffers flag使allocUnsafe、allocUnsafeSlow在分配完内存后也进行0值填充。

    注意:Buffer.from不支持传入数字,如下所示:

    需要谨记一点:new Buffer(xxxx) 方式已经不推荐使用了

    参考:
    https://juejin.im/post/5afd57e851882542ac7d76af

    相关文章

      网友评论

          本文标题:node中的Buffer

          本文链接:https://www.haomeiwen.com/subject/qyneaftx.html