成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

node.js中Buffer對(duì)象有什么用

這篇文章將為大家詳細(xì)講解有關(guān)node.js中Buffer對(duì)象有什么用,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、成都網(wǎng)站建設(shè)、丹徒網(wǎng)絡(luò)推廣、微信小程序、丹徒網(wǎng)絡(luò)營銷、丹徒企業(yè)策劃、丹徒品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供丹徒建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:jinyejixie.com

Buffer對(duì)象,是Node的核心模塊,在面試中也是會(huì)頻繁被問到一個(gè)考題,如果沒有對(duì)其深入探究,可能就跟我一樣只會(huì)用,一旦面試官擴(kuò)展問些問題可能就不會(huì)了。反正,當(dāng)時(shí)我也只能回答說:目前涉及到的業(yè)務(wù)對(duì)Buffer模塊用的比較少,但是Buffer對(duì)象可以對(duì)于一些字符串傳輸無法滿足業(yè)務(wù)功能和性能上得到有效的優(yōu)化。

Buffer對(duì)象

Buffer對(duì)象用于表示固定長(zhǎng)度的字節(jié)序列

// 創(chuàng)建一個(gè)長(zhǎng)度為 10、以零填充的 Buffer。
const buf1 = Buffer.alloc(10);

// 創(chuàng)建一個(gè)長(zhǎng)度為 10 的 Buffer,
// 其中全部填充了值為 `1` 的字節(jié)。
const buf2 = Buffer.alloc(10, 1);

var str="hello Jasen"; 
var buf = new Buffer.from(str,'utf-8');
console.log(buf);

//輸出:<Buffer 68 65 6c 6c 6f 20 4a 61 73 65 6e>

觀察輸出的結(jié)果,Buffer對(duì)象類似一個(gè)數(shù)組。

Buffer對(duì)象中的每個(gè)元素都是16進(jìn)制的兩位數(shù)(即0到255的數(shù)值)

對(duì)Buffer某個(gè)元素賦值如果小于0的,會(huì)逐次加256,直到得到一個(gè)0到255范圍的值,如果大于255則逐次減256,直到得到0-255范圍得值,如果是小數(shù)的話,則直接取整。

使用場(chǎng)景

  • 可用于處理大量二進(jìn)制數(shù)據(jù)

  • 處理圖片、文件接收上傳、網(wǎng)絡(luò)協(xié)議等等

優(yōu)勢(shì)

網(wǎng)絡(luò)傳輸中,性能提升

大部分網(wǎng)絡(luò)傳輸?shù)臅r(shí)候會(huì)使用通過使用字符串,這難免需要轉(zhuǎn)換成Buffer,以二進(jìn)制方式進(jìn)行數(shù)據(jù)傳輸。如果我們直接預(yù)先轉(zhuǎn)換為Buffer 再進(jìn)行傳輸,那么在傳輸過程中無需做額外的轉(zhuǎn)換,也避免了損耗,使性能得到提升。

以下通過ab進(jìn)行一次性能測(cè)試,發(fā)起200個(gè)并發(fā)客戶端請(qǐng)求的結(jié)果,QPS提升的不是很高,但還是有一點(diǎn)點(diǎn)的提升,可以復(fù)制代碼執(zhí)行下,是否結(jié)果和我一樣

node.js中Buffer對(duì)象有什么用

node.js中Buffer對(duì)象有什么用

var http = require('http');
var str = "";

for (var i = 0; i < 1024 * 10; i++) {
    str += "a";
}

str = new Buffer.from(str,'utf-8');

http.createServer(function (req, res) {
    res.writeHead(200);
    res.end(bufstr);
}).listen(8002);

Buffer與Stream

Stream 也是Node的核心模塊,數(shù)據(jù)就像流水一樣,流是對(duì)輸入輸出設(shè)備的抽象,是一組有序的、有起點(diǎn)和終點(diǎn)的字節(jié)數(shù)據(jù)傳輸手段。

Node.js 中有四種基本的流類型:

  • Writable - 可寫入數(shù)據(jù)的流(例如 fs.createWriteStream())

  • Readable - 可讀取數(shù)據(jù)的流(例如 fs.createReadStream())。

  • Duplex - 可讀又可寫的流(例如 net.Socket)。

  • Transform - 在讀寫過程中可以修改或轉(zhuǎn)換數(shù)據(jù)的 Duplex

場(chǎng)景:

文件分片上傳下載,比如下載電影時(shí)可以邊下載邊看,這樣一個(gè)實(shí)現(xiàn)過程。

關(guān)于“node.js中Buffer對(duì)象有什么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

文章名稱:node.js中Buffer對(duì)象有什么用
文章起源:http://jinyejixie.com/article2/ghhioc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、網(wǎng)站收錄ChatGPT、用戶體驗(yàn)、虛擬主機(jī)App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營
青海省| 泾川县| 城固县| 肥乡县| 浪卡子县| 池州市| 天全县| 县级市| 财经| 武定县| 合川市| 泰安市| 潍坊市| 额尔古纳市| 庆元县| 虎林市| 克拉玛依市| 喀喇沁旗| 南昌市| 台前县| 扶绥县| 绿春县| 垦利县| 都兰县| 太原市| 准格尔旗| 蕉岭县| 浦北县| 万源市| 江津市| 宜城市| 邹平县| 安图县| 城市| 中西区| 融水| 宁陕县| 康定县| 平原县| 油尖旺区| 镇安县|