為什麼node.js要引入buffer?淺析緩衝區buffer
這篇文章帶大家了解一下node.js中的緩衝區buffer,介紹為什麼node.js中要引入buffer、node伺服器在什麼場景需要緩衝等等。
為什麼node.js中要引入buffer
buffer的英文釋義
buffer在英文中是緩衝,快取的意思,從這個意思可以初步獲悉引入buffer是為了在node伺服器上面做緩衝的。 【推薦學習:《nodejs 教學》】
node伺服器在什麼場景需要緩衝
既然node是用於伺服器,那就需要應對網路請求(net,http),操作檔案系統(fs,readline),處理圖片,檔案的上傳與下載等場景。 node選取了js,同時需要V8引擎來執行js,強大的V8引擎難道不能勝任了嗎?
V8的限制
為什麼V8會有限制? V8的誕生是用於chrome瀏覽器的,瀏覽器用於呈現網頁;對於網頁的展示,V8設計時在64位元作業系統下使用內存約為1.4G,32作業系統下約為0.7G內存,這樣的記憶體大小對於網頁的展示是足夠的,但是對於伺服器端的使用就會捉襟見肘。
node底層C 來分配記憶體
#既然V8限制了記憶體的使用,node底層使用C 來分配內存,確實可以取得到更大的內存,但是老子曰:道可道,非常道,名可名,非常名;同理分配的內存有大小,就會有被佔滿,阻塞,繼而服務緩慢,甚至崩潰。
緩衝區buffer怎麼處理上述場景的問題
#火星移民
##想想像這個場景,需要將地球(C盤)上10億生物(英文字符,漢字,阿拉伯文字等)轉移到火星(D盤),我們在地球和火星之間建立了可容納1千萬生物的空間站(內存) ;如果10億生物同時進入太空站,將是一場災難(崩潰);地球的太空船(緩衝區buffer)有1000個位置(位元組)來運載生物到太空站;然後去火星的太空船(緩存區buffer)有1000個位置(位元組),再運載生物到火星。概念提取
- Buffer:
用來表示固定長度的位元組序列,好比:固定1000個位置的飛船
- UTF-8:
是一種變長的編碼方式。它可以使用1~4個位元組表示一個符號,根據不同的符號而變化位元組長度。好比:太空船會規定英文生物佔用1個位置,漢字生物佔用2個或3個,4個位置
原文地址:https://juejin.cn/post/6991495867219836936 作者:LE更多程式相關知識,請造訪:
程式設計入門! !
以上是為什麼node.js要引入buffer?淺析緩衝區buffer的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

作用是:給工程師們回饋使用資訊與記錄方便分析問題(開發時使用的);由於使用者本身不是經常產生上傳日誌,所以對使用者無用。日誌記錄緩衝區是小型的、用於短期儲存將寫入到磁碟上的重做日誌的變更向量的臨時區域。日誌緩衝區對磁碟的一次寫入是來自多個交易的一批變更向量。即使如此,日誌緩衝區中的變更向量也是接近即時寫入磁碟,當會話發出COMMIT語句時,會即時執行日誌緩衝區寫入操作。

基於無阻塞、事件驅動建立的Node服務,具有記憶體消耗低的優點,非常適合處理海量的網路請求。在海量請求的前提下,就需要考慮「記憶體控制」的相關問題了。 1. V8的垃圾回收機制與記憶體限制 Js由垃圾回收機

選擇一個Node的Docker映像看起來像是小事,但是映像的大小和潛在漏洞可能會對你的CI/CD流程和安全造成重大的影響。那我們要如何選擇一個最好Node.js Docker映像呢?

Node 19已正式發布,以下這篇文章就來帶大家詳解了解Node.js 19的 6 大特性,希望對大家有幫助!

文件模組是對底層文件操作的封裝,例如文件讀寫/打開關閉/刪除添加等等文件模組最大的特點就是所有的方法都提供的**同步**和**異步**兩個版本,具有sync 字尾的方法都是同步方法,沒有的都是異

事件循環是 Node.js 的基本組成部分,透過確保主執行緒不被阻塞來實現非同步編程,了解事件循環對建立高效應用程式至關重要。以下這篇文章就來帶大家深入了解Node中的事件循環 ,希望對大家有幫助!
