Bộ đệm luồng NodeJS
Hướng dẫn này nói về Bộ đệm trong Nodejs. Hãy nhớ rằng chúng tôi đã nói về các luồng? . Đi trước và đọc chúng. Phần 1 và Phần 2 Show
Và nếu bạn đã hiểu Luồng là gì, thì bạn đã sẵn sàng, mi amigo Quay lại vấn đề chính, để hiểu bộ đệm trong Nodejs là gì, trước tiên bạn cần hiểu luồng là gì Tương quan các luồng với bộ đệm trong NodejsGiả sử bạn hiểu những gì tôi đang nói vào thời điểm này, bộ đệm trong Nodejs đề cập đến dữ liệu tạm thời mà một luồng lưu giữ trước khi nó được sử dụng Kích thước của bộ đệm trong luồng được xác định bởi một thuộc tính trên phiên bản luồng được gọi là highWatermark. Thuộc tính này là một số xác định kích thước của bộ đệm theo byte Theo hành vi mặc định, bộ nhớ đệm hoạt động trên Bộ đệm và Chuỗi. Chúng tôi cũng có thể chọn để nó hoạt động trên các đối tượng JavaScript. Trong trường hợp đó, chúng ta phải đặt thuộc tính objectMode trên luồng thành true Nguồn. Hunk lập trìnhBây giờ, khi một số dữ liệu được đẩy vào luồng, dữ liệu đó sẽ nằm trong bộ đệm luồng cho đến khi luồng được sử dụng hết. Khi bộ nhớ đệm đầy và chúng tôi cố gắng đẩy mạnh dữ liệu vào luồng, dữ liệu sẽ bị từ chối và kết quả trả về là sai đối với hành động đẩy Bộ đệm trong Nodejs – Định nghĩa độc lậpLớp đệm có sẵn trong phạm vi toàn cầu trong Nodejs và do đó, bạn không bao giờ phải nhập nó bằng mô-đun yêu cầu Có thể nói, bộ đệm trong Nodejs ít phổ biến hoặc quen thuộc hơn đối với các nhà phát triển Node vì họ không tương tác với bộ nhớ hệ thống hàng ngày Các nhà phát triển làm việc với Go, C hoặc C++ hoặc bất kỳ ngôn ngữ lập trình hệ thống nào khác đều quen thuộc với khái niệm Bộ đệm Bộ đệm trong Nodejs là một kích thước bộ nhớ cố định không thể thay đổi kích thước. Như đã đề cập ở trên, kích thước của chúng được xác định bởi thuộc tính highWatermark trên phiên bản luồng Chúng ta có thể nghĩ về Bộ đệm trong Nodejs như một mảng các số nguyên, mỗi số xác định kích thước của bộ nhớ theo byte dữ liệu. Bộ đệm được đặt bên ngoài công cụ JavaScript V8 Tại sao sử dụng bộ đệm trong Nodejs lại hữu ích?Bộ đệm trong nút. js không nên nhầm lẫn với khái niệm về bộ đệm. Đây chỉ là trường hợp khi bộ xử lý luồng nhận dữ liệu với tốc độ nhanh hơn mức nó có thể tiêu hóa Bộ đệm trong Nodejs là JavaScript thuần túy. Mặc dù chúng hoạt động rất tốt với các chuỗi được mã hóa bằng Unicode, nhưng chúng không hoạt động tốt với dữ liệu nhị phân. Tuy nhiên, đối với trình duyệt thì không sao, vì hầu hết dữ liệu đều là chuỗi Ban đầu, Nodejs sử dụng các chuỗi để xử lý các luồng TCP và đọc và ghi vào hệ thống tệp. Tuy nhiên, có một vấn đề với chuỗi. Cả hai nhiệm vụ này đều yêu cầu xử lý các luồng dữ liệu nhị phân Mặc dù bạn có thể sử dụng dây, tuy nhiên, điều đó sẽ chỉ mang lại rắc rối cho bạn. Đầu tiên, cách tiếp cận này làm chậm quá trình vì bạn sẽ phải sử dụng API tương thích với chuỗi chứ KHÔNG phải dữ liệu nhị phân Thứ hai, mã cũng có xu hướng bị hỏng theo những cách không mong muốn Vì vậy, tại sao lại sử dụng chuỗi nhị phân, khi bạn có thể sử dụng bộ đệm trong Nodejs Tạo bộ đệm trong NodejsBộ đệm trong Nodejs có thể được tạo bằng Bộ đệm. từ (), Bộ đệm. cấp phát () và Bộ đệm. phương thức allocUnsafe() const buf = Bộ đệm. from('Một số văn bản ngớ ngẩn. ’); Bạn thậm chí có thể sử dụng cú pháp sau để tạo bộ đệm trong Nodejs
Chúng tôi cũng có thể phân bổ kích thước khi khởi tạo bộ đệm. Hãy tạo bộ đệm 2KB const buf = Bộ đệm. alloc(2048) Lưu ý quan trọngMột số điều bạn nên biết khi làm việc với bộ đệm trong Nodejs. Mặc dù cả alloc và allocUnsafe đều xác định kích thước cho Bộ đệm theo byte, nhưng có sự khác biệt giữa hai Phương thức alloc() được khởi tạo bằng 0 và phương thức allocUnsafe() vẫn chưa được khởi tạo. Có nghĩa là, mặc dù allocUnsafe() có thể tương đối nhanh hơn alloc(), nhưng phần dữ liệu được phân bổ có thể chứa dữ liệu cũ và có khả năng nhạy cảm Nếu có dữ liệu cũ hơn trong bộ nhớ, có thể bị truy cập hoặc rò rỉ khi Bộ đệm được đọc. Đây chính xác là lý do tại sao nó được đặt tên là allocUnsafe và đây là điều khiến nó không an toàn Bạn nên cẩn thận hơn khi sử dụng phương pháp này Truy cập nội dung của bộ đệmTrước đó trong bài viết này, tôi đã đề cập đến Bộ đệm trong Nodejs giống một mảng byte hơn. Do đó, khi chúng ta truy cập dữ liệu từ một mảng đơn giản, chúng ta có thể thực hiện tương tự ở đây để truy cập nội dung của bộ đệm bằng cách sử dụng chỉ mục const buf = Bộ đệm. từ ('Này. ') Các số bạn nhìn thấy là các byte UTF-8 xác định các ký tự trong bộ đệm đó (H → 72, e → 101, y → 121). Bạn thấy điều này vì UTF-8 là bảng mã Unicode mặc định. Điều quan trọng cần lưu ý là một số ký tự có thể chiếm nhiều byte bộ nhớ hơn Để in toàn bộ nội dung của bộ đệm, hãy sử dụng phương thức toString() bảng điều khiển. nhật ký (buf. toString()) Theo mặc định, buf. toString() cũng sử dụng mã hóa UTF-8 Khi bạn khởi tạo bộ đệm với một số được chỉ định trước cho kích thước, bạn sẽ không nhận được bộ đệm trống, thay vào đó bạn sẽ tìm thấy một số dữ liệu ngẫu nhiên bên trong nó Thay đổi nội dung của bộ đệmBạn có thể ghi toàn bộ chuỗi dữ liệu vào bộ đệm trong Nodejs bằng cách sử dụng phương thức write() const buf = Bộ đệm. cấp phát(4) Giống như chúng ta thay đổi dữ liệu trong một mảng bằng cách truy cập nó lần đầu tiên, chúng ta có thể làm tương tự ở đây để thay đổi nội dung của bộ đệm trong Nodejs const buf = Bộ đệm. from('dan. ') Phần kết luậnĐể hiểu bộ đệm trong Nodejs là gì, trước tiên bạn cần hiểu luồng là gì. Đọc bài đăng này về bộ đệm trong Nodejs để giải thích nó là gì, cách thức hoạt động và cách bạn có thể sử dụng bộ đệm trong các dự án Nodejs Sự khác biệt giữa bộ đệm và luồng là gì?Bộ đệm là phương pháp tải trước các phân đoạn dữ liệu khi truyền phát nội dung video. Truyền trực tuyến — quá trình truyền liên tục các tệp âm thanh hoặc video từ máy chủ đến máy khách — là quá trình giúp xem video trực tuyến trở nên khả thi
Đệm một luồng có nghĩa là gì?Vùng đệm suối là các khu vực cây cối rậm rạp dọc theo và liền kề với suối nơi việc dọn dẹp, san lấp, lấp đầy, xây dựng công trình và các hoạt động khác bị hạn chế hoặc bị cấm. Stream buffers protect water quality, reduce flooding, and provide other benefits.
Kích thước bộ đệm luồng là gì?Kích thước mặc định của bộ đệm luồng là 4K .
Bộ đệm luồng hoạt động như thế nào?Vùng đệm dòng chảy tạo khoảng cách giữa việc sử dụng nước và đất vùng cao . Vùng đệm càng rộng, nó xử lý chất dinh dưỡng càng hiệu quả và làm chậm trầm tích trong dòng chảy trước khi chúng đi vào dòng suối. Các nghiên cứu gần đây khuyến nghị 100 feet là chiều rộng vùng đệm tối thiểu để cải thiện môi trường sống của động vật hoang dã, chất lượng nước và khả năng phục hồi bão. |