Buffer是什么?

Buffer作為存在于全局對(duì)象上,無(wú)需引入模塊即可使用,你絕對(duì)不可以忽略它。
可以理解Buffer是在內(nèi)存中開(kāi)辟的一片區(qū)域,用于存放二進(jìn)制數(shù)據(jù)。Buffer所開(kāi)辟的是堆外內(nèi)存。
Buffer的應(yīng)用場(chǎng)景有哪些?
流
怎么理解流呢?流是數(shù)據(jù)的集合(與數(shù)據(jù)、字符串類(lèi)似),但是流的數(shù)據(jù)不能一次性獲取到,數(shù)據(jù)也不會(huì)全部load到內(nèi)存中,因此流非常適合大數(shù)據(jù)處理以及斷斷續(xù)續(xù)返回chunk的外部源。流的生產(chǎn)者與消費(fèi)者之間的速度通常是不一致的,因此需要buffer來(lái)暫存一些數(shù)據(jù)。buffer大小通過(guò)highWaterMark參數(shù)指定,默認(rèn)情況下是16Kb。
存儲(chǔ)需要占用大量?jī)?nèi)存的數(shù)據(jù)
Buffer 對(duì)象占用的內(nèi)存空間是不計(jì)算在 Node.js 進(jìn)程內(nèi)存空間限制上的,所以可以用來(lái)存儲(chǔ)大對(duì)象,但是對(duì)象的大小還是有限制的。一般情況下32位系統(tǒng)大約是1G,64位系統(tǒng)大約是2G。
如何創(chuàng)建Buffer
除了流自動(dòng)隱式創(chuàng)建Buffer之外,也可以手動(dòng)創(chuàng)建Buffer,方式如下:
Buffer中存儲(chǔ)的數(shù)據(jù)已確定
Buffer.from(obj) // obj支持的類(lèi)型string, buffer, arrayBuffer, array, or array-like object
注意:Buffer.from不支持傳入數(shù)字,如下所示:
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) ...
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)站題目:Node.jsBuffer用法解讀-創(chuàng)新互聯(lián)
分享URL:http://chinadenli.net/article26/dgpccg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站改版、搜索引擎優(yōu)化、建站公司、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容