最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js實用代碼段之正確拼接Buffer

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

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

本例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 對象拼接 
 */ 
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 對象拼接 
 * @type {string} 
 */ 
var s2 = list.join(""); 
console.timeEnd("string concat test!"); 
/** 
 * end record time 
 */ 
console.info(); 
console.info("------  Buffer concat vs String concat ------");

【代碼分析】

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

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

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

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

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

Buffer對象拼接功能

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

以上就是第二個實用的Node.js代碼段,希望對大家的學習有所幫助。

相關文章

  • Node.js log4js日志管理詳解

    Node.js log4js日志管理詳解

    日志對任何的應用來說都是至關重要的,下面這篇文章主要給大家介紹了關于Node.js log4js日志管理的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧
    2018-07-07
  • Node.js中ES6模塊化及Promise對象

    Node.js中ES6模塊化及Promise對象

    這篇文章主要介紹了Node.js中ES6模塊化及Promise對象,node.js?遵循了?CommonJS?的模塊化規(guī)范,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • node管理統(tǒng)計文件大小并顯示目錄磁盤空間狀態(tài)從零實現(xiàn)

    node管理統(tǒng)計文件大小并顯示目錄磁盤空間狀態(tài)從零實現(xiàn)

    這篇文章主要為大家介紹了node管理統(tǒng)計文件大小并顯示目錄磁盤空間狀態(tài)的從零實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • node.js實現(xiàn)簡單登錄注冊功能

    node.js實現(xiàn)簡單登錄注冊功能

    這篇文章主要為大家詳細介紹了node.js實現(xiàn)簡單登錄注冊功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 使用NestJS開發(fā)Node.js應用的方法

    使用NestJS開發(fā)Node.js應用的方法

    這篇文章主要介紹了使用NestJS開發(fā)Node.js應用的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • node基于express框架操作Mysql數(shù)據(jù)庫的步驟

    node基于express框架操作Mysql數(shù)據(jù)庫的步驟

    這篇文章主要介紹了node基于express框架操作Mysql數(shù)據(jù)庫的步驟,文章給大家提到安裝mysql模塊和配置mysql模塊的步驟,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • 一步步教你使用node搭建一個小頁面

    一步步教你使用node搭建一個小頁面

    最近使用NodeJs搭建的小型web應用,所以下面這篇文章主要給大家介紹了關于使用node搭建一個小頁面的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • nodejs教程之入門

    nodejs教程之入門

    本文是nodejs教程系列的入門篇,主要講述nodejs的特點、模塊機制/CommonJs(模塊引用、模塊定義、模塊標識、模塊實現(xiàn))、包與NPM等知識,非常的詳細,這里推薦給大家作為入門的文章。
    2014-11-11
  • 前端如何更好的展示后端返回的十萬條數(shù)據(jù)

    前端如何更好的展示后端返回的十萬條數(shù)據(jù)

    這篇文章主要為大家介紹了前端如何更好的展示后端返回的十萬條數(shù)據(jù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2021-11-11
  • Node.js 基礎教程之全局對象

    Node.js 基礎教程之全局對象

    這篇文章主要介紹了Node.js 基礎教程之全局對象的相關資料,Node.js 中的全局對象是 global,所有全局變量(除了 global 本身以外)都是 global 對象的屬性,需要的朋友可以參考下
    2017-08-08

最新評論

临猗县| 东山县| 财经| 彰化县| 古丈县| 阿城市| 长治县| 黄冈市| 河池市| 四川省| 莲花县| 泗阳县| 梁平县| 泸水县| 烟台市| 鹤峰县| 苍溪县| 芮城县| 江山市| 黎城县| 建湖县| 普兰县| 宁晋县| 辽中县| 莎车县| 鹿邑县| 普安县| 恭城| 探索| 深州市| 高邑县| 犍为县| 济源市| 若尔盖县| 运城市| 罗山县| 郎溪县| 社会| 河南省| 东丰县| 荔波县|