Apakah objek Penampan dalam node.js? Apakah senario penggunaan?

青灯夜游
Lepaskan: 2021-07-28 18:41:37
ke hadapan
1941 orang telah melayarinya

Artikel ini akan memperkenalkan anda kepada objek Buffer dalam node.js untuk melihat apakah senario penggunaan objek Buffer dan apakah kelebihannya.

Apakah objek Penampan dalam node.js? Apakah senario penggunaan?

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>
Salin selepas log masuk

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

  • Boleh digunakan untuk memproses sejumlah besar data binari
  • Memproses gambar, penerimaan fail dan muat naik, protokol rangkaian Tunggu

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

Apakah objek Penampan dalam node.js? Apakah senario penggunaan?

Apakah objek Penampan dalam node.js? Apakah senario penggunaan?

var http = require(&#39;http&#39;);
var str = "";

for (var i = 0; i < 1024 * 10; i++) {
    str += "a";
}

str = new Buffer.from(str,&#39;utf-8&#39;);

http.createServer(function (req, res) {
    res.writeHead(200);
    res.end(bufstr);
}).listen(8002);
Salin selepas log masuk

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:

  • Boleh Tulis - strim yang boleh menulis data (seperti fs.createWriteStream())
  • Boleh dibaca - Strim dari mana data boleh dibaca (cth. fs.createReadStream()).
  • Dupleks - strim yang boleh dibaca dan boleh ditulis (cth. net.Socket).
  • Ubah - Strim 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!

Label berkaitan:
sumber:juejin.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