Rumah > hujung hadapan web > tutorial js > Penyambungan yang betul bagi coretan kod praktikal Node.js Buffer_node.js

Penyambungan yang betul bagi coretan kod praktikal Node.js Buffer_node.js

WBOY
Lepaskan: 2016-05-16 15:10:24
asal
1311 orang telah melayarinya

Bagi pembangun yang baru menggunakan rangka kerja Node.js, mereka mungkin berpendapat bahawa modul Penampan lebih mudah dipelajari dan kurang penting. Malah, modul Penampan digunakan secara meluas dalam fail I/O dan rangkaian I/O prestasi pemprosesan binarinya jauh lebih tinggi daripada rentetan biasa, dan kepentingannya sangat penting. Di bawah ini kami menunjukkan kepada pembaca melalui rutin proses penyambungan menggunakan kaedah buf.concat().

Kod utama ch04.buffer-concat.js dalam contoh ini adalah seperti berikut:

/** 
 * 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 ------");
Salin selepas log masuk

【Analisis Kod】

Baris ke-10 kod mentakrifkan objek Penampan, nama pembolehubah ialah buf, dan memulakan data rentetan ("ujian gabungan Penampan ini!"); data ("Ujian concat String ini!"); dari permulaan baris ke-15 kod hingga penghujung baris ke-26 kod, tempoh rakaman selang masa diselesaikan melalui console.time() dan console.timeEnd( ) kaedah; ke-16 hingga ke-21 Baris kod mentakrifkan senarai pembolehubah tatasusunan [] dan menggunakan pembolehubah buf untuk memulakan pembolehubah tatasusunan 25 menyambung semula kod dalam tatasusunan senarai[] menjadi objek Penampan melalui Kaedah Buffer.concat(list,len) , huraian sintaks kaedah Buffer.concat(list,len) adalah seperti berikut:

Sintaks: Buffer.concat(list,[totalLength])
Perihalan parameter:

senarai{Array}: jenis tatasusunan, Tatasusunan Penampan, pernah disambungkan
jumlahLength: jenis {Nombor}, jumlah saiz objek tatasusunan Penampan parameter pertama

Kaedah ini mengembalikan objek penimbal yang menyimpan penyambungan semua objek penimbal dalam tatasusunan penimbal masuk jika tatasusunan masuk tidak mempunyai kandungan, atau parameter totalLength ialah 0, penimbal panjang sifar akan dikembalikan; hanya satu item dalam tatasusunan, maka item pertama akan dikembalikan jika terdapat lebih daripada satu item dalam tatasusunan, maka contoh objek Penimbal baharu akan dibuat jika parameter totalLength tidak disediakan, walaupun bacaan akan dibuat; dikira daripada pengambilan tatasusunan penimbal, tetapi gelung tambahan akan ditambahkan untuk mengira panjang, jadi memberikan parameter totalLength yang jelas akan menjadikan kaedah Buffer.concat() dilaksanakan dengan lebih pantas;

Seperti yang dapat dilihat daripada keputusan yang ditunjukkan dalam rajah, masa yang diambil untuk penyambungan menggunakan kaedah Buffer.concat(list,len) ialah 48ms.

Fungsi penyambungan objek penimbal

Nota: Parameter kedua totalLength kaedah Buffer.concat(list, [totalLength]) adalah istimewa JumlahLength di sini bukanlah panjang tatasusunan tetapi jumlah saiz kejadian Buffer dalam tatasusunan.

Di atas ialah coretan kod Node.js praktikal kedua, saya harap ia akan membantu pembelajaran semua orang.

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan