亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Node.js實(shí)用代碼段之正確拼接Buffer

 更新時(shí)間:2016年03月17日 14:42:33   作者:更愛Web-APP  
這篇文章主要介紹了Node.js實(shí)用代碼段之正確拼接Buffer,通過實(shí)例代碼分享如何正確拼接Buffer,感興趣的小伙伴們可以參考一下

對(duì)于初學(xué)Node.js框架的開發(fā)人員來說,可能認(rèn)為Buffer模塊比較易學(xué)、重要性也不是那么突出。其實(shí),Buffer模塊在文件I/O和網(wǎng)絡(luò)I/O中應(yīng)用非常廣泛,其處理二進(jìn)制的性能比普通字符串性能要高出很多,重要性可謂是舉足輕重。下面我們通過一個(gè)例程向讀者演示一下,使用buf.concat()方法進(jìn)行拼接的過程。

本例ch04.buffer-concat.js主要代碼如下:

/** 
 * ch04.buffer-concat.js 
 */ 
console.info("------  Buffer concat vs String concat ------"); 
console.info(); 
/** 
 * define variable 
 * @type {Buffer} 
 */ 
var buf = new Buffer("this is Buffer concat test!"); 
var str = "this is String concat test!"; 
/** 
 * start record time 
 */ 
console.time("buffer concat test!"); 
var list = []; 
var len = 100000 * buf.length; 
for(var i=0; i<100000; i++){ 
  list.push(buf); 
  len += buf.length; 
} 
/** 
 * Buffer 對(duì)象拼接 
 */ 
var s1 = Buffer.concat(list, len).toString(); 
console.timeEnd("buffer concat test!"); 
console.info(); 
console.time("string concat test!"); 
var list = []; 
for(var i=100000; i>=0; i--) { 
  list.push(str); 
} 
/** 
 * String 對(duì)象拼接 
 * @type {string} 
 */ 
var s2 = list.join(""); 
console.timeEnd("string concat test!"); 
/** 
 * end record time 
 */ 
console.info(); 
console.info("------  Buffer concat vs String concat ------");

【代碼分析】

第10行代碼定義了一個(gè)Buffer對(duì)象,變量名為buf,并初始化了一個(gè)字符串?dāng)?shù)據(jù)("thisis Buffer concat test!");第11行代碼定義了一個(gè)字符串變量str,并初始化了一個(gè)字符串?dāng)?shù)據(jù)("thisis String concat test!");從第15行代碼開始到第26行代碼結(jié)束,通過console.time()和console.timeEnd()方法完成一段時(shí)間間隔記錄;第16~21行代碼定義了一個(gè)數(shù)組變量list[],并使用buf變量對(duì)該數(shù)組變量進(jìn)行初始化;第25行代碼通過Buffer.concat(list,len)方法將list[]數(shù)組中的編碼重新拼接成一個(gè)Buffer對(duì)象,關(guān)于Buffer.concat(list,len)方法的語(yǔ)法說明如下:

 語(yǔ)法:Buffer.concat(list,[totalLength]) 
參數(shù)說明: 

 list{Array}:數(shù)組類型,Buffer數(shù)組,用于被連接
 totalLength:{Number}類型,第一個(gè)參數(shù)Buffer數(shù)組對(duì)象的總大小

該方法返回一個(gè)保存著將傳入buffer數(shù)組中所有buffer對(duì)象拼接在一起的buffer對(duì)象;如果傳入的數(shù)組沒有內(nèi)容,或者totalLength參數(shù)是0,那將返回一個(gè)zero-length的buffer;如果數(shù)組中只有一項(xiàng),那么這第一項(xiàng)就會(huì)被返回;如果數(shù)組中的項(xiàng)多于一個(gè),那么一個(gè)新的Buffer對(duì)象實(shí)例將被創(chuàng)建;如果totalLength參數(shù)沒有提供,雖然會(huì)從buffer數(shù)組中計(jì)算讀取,但是會(huì)增加一個(gè)額外的循環(huán)來計(jì)算該長(zhǎng)度,因此提供一個(gè)明確的totalLength參數(shù)將會(huì)使得Buffer.concat()方法執(zhí)行的更快;

從圖中顯示的結(jié)果可以看到,使用Buffer.concat(list,len)方法進(jìn)行拼接的耗時(shí)為48ms。

Buffer對(duì)象拼接功能

注意:Buffer.concat(list, [totalLength])方法的第2個(gè)參數(shù)totalLength比較特別,這里的totalLength不是數(shù)組長(zhǎng)度是數(shù)組里Buffer實(shí)例的大小總和。

以上就是第二個(gè)實(shí)用的Node.js代碼段,希望對(duì)大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • 詳解NODEJS基于FFMPEG視頻推流測(cè)試

    詳解NODEJS基于FFMPEG視頻推流測(cè)試

    本篇文章主要介紹了詳解NODEJS基于FFMPEG視頻推流測(cè)試,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • Nodejs Express4.x開發(fā)框架隨手筆記

    Nodejs Express4.x開發(fā)框架隨手筆記

    Express: ?web application framework for?Node.js?Express 是一個(gè)簡(jiǎn)潔、靈活的 node.js Web 應(yīng)用開發(fā)框架, 它提供一系列強(qiáng)大的特性,幫助你創(chuàng)建各種 Web 和移動(dòng)設(shè)備應(yīng)用,本篇文章給大家介紹nodejs express4.x開發(fā)框架隨手筆記,感興趣的朋友一起學(xué)習(xí)吧
    2015-11-11
  • npx的使用及原理分析

    npx的使用及原理分析

    這篇文章主要介紹了npx的使用及原理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • nodejs 圖解express+supervisor+ejs的用法(推薦)

    nodejs 圖解express+supervisor+ejs的用法(推薦)

    下面小編就為大家?guī)硪黄猲odejs 圖解express+supervisor+ejs的用法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • node.js express安裝及示例網(wǎng)站搭建方法(分享)

    node.js express安裝及示例網(wǎng)站搭建方法(分享)

    下面小編就為大家?guī)硪黄猲ode.js express安裝及示例網(wǎng)站搭建方法(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • 在Mac下徹底卸載node和npm的方法

    在Mac下徹底卸載node和npm的方法

    今天小編就為大家分享一篇在Mac下徹底卸載node和npm的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Node.js中使用計(jì)時(shí)器定時(shí)執(zhí)行函數(shù)詳解

    Node.js中使用計(jì)時(shí)器定時(shí)執(zhí)行函數(shù)詳解

    這篇文章主要介紹了Node.js中使用計(jì)時(shí)器定時(shí)執(zhí)行函數(shù)詳解,本文使用了Node.js中的setTimeout和setInterval函數(shù),需要的朋友可以參考下
    2014-08-08
  • node.js中的fs.readlink方法使用說明

    node.js中的fs.readlink方法使用說明

    這篇文章主要介紹了node.js中的fs.readlink方法使用說明,本文介紹了fs.readlink方法說明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 解決nodejs的npm命令無(wú)反應(yīng)的問題

    解決nodejs的npm命令無(wú)反應(yīng)的問題

    今天小編就為大家分享一篇解決nodejs的npm命令無(wú)反應(yīng)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 淺析Node.js:DNS模塊的使用

    淺析Node.js:DNS模塊的使用

    本篇文章主要介紹了Node.js:DNS模塊的使用,DNS模塊包涵有關(guān)DNS查詢和操作的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2016-11-11

最新評(píng)論