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 ------");
【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.