This article will take you to understand the buffer buffer in node.js, and introduce why buffer is introduced in node.js, in what scenarios the node server needs buffering, etc.
The English definition of buffer
Buffer means buffering in English. From this meaning, we can initially understand that buffer is introduced to buffer on the node server. [Recommended learning: "nodejs Tutorial"]
In what scenarios does the node server need buffering
Since node is used For servers, you need to deal with network requests (net, http), operate file systems (fs, readline), process pictures, upload and download files, etc. node selects js, and the V8 engine is needed to execute js. Isn’t the powerful V8 engine capable of the job?
Limitations of V8
Why does V8 have restrictions? V8 was born for the chrome browser, which is used to render web pages. For the display of web pages, V8 is designed to use about 1.4G of memory under the 64-bit operating system and about 0.7G of memory under the 32-bit operating system. This is The memory size is sufficient for the display of web pages, but it will be insufficient for server-side use.
The bottom layer of node uses C to allocate memory
Since V8 limits the use of memory, the bottom layer of node uses C to allocate memory, and it can indeed be obtained Larger memory, but Lao Tzu said: Tao can be Tao, not Tao, name can be named, but not name. Similarly, if the allocated memory has a certain size, it will be full, blocked, and then the service will be slow or even crash.
Mars Immigration
Imagine this scenario , it is necessary to transfer 1 billion creatures (English characters, Chinese characters, Arabic characters, etc.) on the Earth (C disk) to Mars (D disk). We have established a space station (memory) between the Earth and Mars that can accommodate 10 million creatures. ; If 1 billion organisms enter the space station at the same time, it will be a disaster (collapse); Earth’s spacecraft (buffer) has 1,000 positions (bytes) to carry organisms to the space station; and then the spacecraft to Mars (buffer) buffer) has 1000 positions (bytes), and then carries organisms to Mars.
Concept extraction
Buffer:
is used to represent a fixed-length byte sequence, such as: fixed 1000-position spacecraftUTF-8:
is a variable-length encoding method. It can use 1~4 bytes to represent a symbol, and the byte length varies according to different symbols. For example: the spacecraft will stipulate that English creatures occupy 1 position, Chinese character creatures occupy 2 or 3, and 4 positions##Original address: https://juejin.cn/post/6991495867219836936 Author: LEFor more programming-related knowledge, please visit:
Introduction to Programming! !
The above is the detailed content of Why does node.js introduce buffer? Brief analysis of buffer buffer. For more information, please follow other related articles on the PHP Chinese website!