ホームページ > ウェブフロントエンド > jsチュートリアル > なぜnode.jsはバッファを導入するのでしょうか?緩衝液の簡単な分析

なぜnode.jsはバッファを導入するのでしょうか?緩衝液の簡単な分析

青灯夜游
リリース: 2021-08-17 10:05:56
転載
2037 人が閲覧しました

この記事では、node.js のバッファー バッファーについて理解し、node.js にバッファーが導入される理由、ノード サーバーがバッファリングを必要とするシナリオなどを紹介します。

なぜnode.jsはバッファを導入するのでしょうか?緩衝液の簡単な分析

#node.js にバッファーが導入される理由

#バッファーの英語の定義

Buffer は英語でバッファリングを意味し、この意味から、ノードサーバー上のバッファーを意味することが最初に理解できます。 [推奨される学習: "

nodejs チュートリアル "]

ノード サーバーはどのようなシナリオでバッファリングを必要としますか

since ノードサーバーの場合、ネットワーク リクエスト (net、http) の処理、ファイル システムの操作 (fs、readline)、画像の処理、ファイルのアップロードとダウンロードなどを行う必要があります。ノードは js を選択し、js を実行するには V8 エンジンが必要ですが、強力な V8 エンジンがその仕事を行うことができるのではないでしょうか?

V8 の制限

V8 にはなぜ制限があるのですか? V8 は、Web ページのレンダリングに使用される Chrome ブラウザー用に生まれました。Web ページの表示には、64 ビット オペレーティング システムでは約 1.4G、32 ビット オペレーティング システムでは約 0.7G のメモリを使用するように設計されています。 bit オペレーティング システムです。これは、Web ページの表示には十分なメモリ サイズですが、サーバー側で使用するには不十分です。

ノードの最下層は C を使用してメモリを割り当てます

V8 ではメモリの使用が制限されているため、ノードの最下層は C を使用してメモリを割り当てますメモリを割り当てると、確かにそれを取得できます より大きなメモリですが、老子は言いました: タオはタオではなくタオであることができます、名前は名前で指定できますが、名前ではありません同様に、割り当てられたメモリが特定のサイズである場合、それはいっぱいになります、ブロックされると、サービスが遅くなったり、クラッシュしたりすることがあります。

バッファは上記のシナリオをどのように処理しますか?

火星移民

このシナリオを想像してください。地球(Cディスク)にいる10億匹の生物(英語文字、漢字、アラビア文字など)を火星(Dディスク)に転送する必要があり、地球と火星の間に宇宙ステーション(メモリ)を設置しました。 1,000 万匹の生物を収容できる ; 10 億の生物が同時に宇宙ステーションに入ると大惨事 (崩壊) になる; 地球の宇宙船 (バッファ) には生物を宇宙ステーションに運ぶための 1,000 の位置 (バイト) がある; そして次に、火星への宇宙船 (バッファ) バッファ) には 1000 の位置 (バイト) があり、生物を火星に運びます。

#概念の抽出

    Buffer:
  • は、次のような固定長のバイト シーケンスを表すために使用されます。 : 固定 1000 位置の spacecraft
  • UTF-8:
  • は可変長符号化方式です。シンボルを表すのに 1 ~ 4 バイトを使用でき、バイト長はシンボルによって異なります。例: 宇宙船は、英語の生き物が 1 つの位置を占め、漢字の生き物が 2 つまたは 3 つ、および 4 つの位置を占めることを規定します。
元のアドレス: https://juejin.cn/post/6991495867219836936

著者: LE

プログラミング関連の知識については、
プログラミング入門

をご覧ください。 !

以上がなぜnode.jsはバッファを導入するのでしょうか?緩衝液の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:掘金--LE
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート