Artikel ini akan memperkenalkan anda kepada objek Buffer dalam node.js untuk melihat apakah senario penggunaan objek Buffer dan apakah kelebihannya.
Objek Penampan ialah modul teras Node Saya akan ditanya soalan dengan kerap semasa temu bual seperti saya Ya, apabila penemuduga mengembang dan bertanya lebih banyak soalan, ia mungkin tidak boleh. Bagaimanapun, pada masa itu saya hanya boleh menjawab: Modul Penampan jarang digunakan dalam perniagaan semasa yang terlibat, tetapi objek Penampan secara berkesan boleh mengoptimumkan beberapa fungsi dan prestasi perniagaan yang tidak dapat dipenuhi oleh penghantaran rentetan. [Pembelajaran yang disyorkan: "tutorial nodejs"]
Jadi, mari belajar tentang objek Penampan hari ini.
Objek penimbal
Objek penimbal digunakan untuk mewakili jujukan bait panjang tetap
// 创建一个长度为 10、以零填充的 Buffer。 const buf1 = Buffer.alloc(10); // 创建一个长度为 10 的 Buffer, // 其中全部填充了值为 `1` 的字节。 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>
Perhatikan output results , objek Penampan adalah serupa dengan tatasusunan.
Setiap elemen dalam objek Penampan ialah nombor heksadesimal dua digit (iaitu, nilai dari 0 hingga 255)
Jika nilai yang diberikan kepada elemen Penampan adalah kurang daripada 0 , ia akan ditambah satu demi satu, sehingga nilai dalam julat 0 hingga 255 diperolehi Jika lebih daripada 255, tolak 256 satu demi satu sehingga nilai dalam julat 0-255 diperolehi ia adalah perpuluhan, ia dibundarkan terus.
Senario penggunaan
Kelebihan
Semasa penghantaran rangkaian, prestasi dipertingkatkan
kebanyakannya Strings digunakan semasa penghantaran rangkaian, yang semestinya perlu ditukar menjadi Buffer untuk penghantaran data dalam mod binari. Jika kami menukarnya secara langsung kepada Penampan sebelum menghantar, tidak perlu melakukan penukaran tambahan semasa proses penghantaran, dan kerugian dapat dielakkan, yang meningkatkan prestasi.
Berikut ialah ujian prestasi melalui ab, dan hasil daripada memulakan 200 permintaan pelanggan serentak Peningkatan QPS tidak begitu tinggi, tetapi masih terdapat sedikit peningkatan. Anda boleh menyalin kod dan melaksanakannya lihat jika hasilnya sama dengan saya
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);
Penimbal dan Strim
Strim juga merupakan modul teras Node, data Sama seperti air, strim ialah abstraksi peranti input dan output Ia adalah satu set cara penghantaran data bait tersusun dengan titik permulaan dan titik akhir.
Terdapat empat jenis strim asas dalam Node.js:
Duplex
yang boleh mengubah suai atau menukar data semasa proses membaca dan menulis Senario:
Muat naik dan muat turun fail dalam kepingan, seperti seperti semasa memuat turun filem Anda boleh menontonnya semasa memuat turun, proses pelaksanaan sedemikian.
Alamat asal: https://juejin.cn/post/6955490895131066382
Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Pengenalan kepada Pengaturcaraan! !
Atas ialah kandungan terperinci Apakah objek Penampan dalam node.js? Apakah senario penggunaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!