久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      node.js中什么是Buffer對(duì)象?使用場(chǎng)景是什么

      本篇文章給大家介紹一下node.js中的Buffer對(duì)象,看看Buffer對(duì)象的使用場(chǎng)景是什么,有哪些優(yōu)勢(shì)。

      node.js中什么是Buffer對(duì)象?使用場(chǎng)景是什么

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

      所以,今天學(xué)習(xí)一下Buffer對(duì)象。

      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ì)象?使用場(chǎng)景是什么

      node.js中什么是Buffer對(duì)象?使用場(chǎng)景是什么

      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)過程。

      原文地址:https://juejin.cn/post/6955490895131066382

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)