ホームページ > ウェブフロントエンド > jsチュートリアル > Node.js Expressの5つの簡単なパフォーマンス微調整

Node.js Expressの5つの簡単なパフォーマンス微調整

Christopher Nolan
リリース: 2025-02-19 09:06:11
オリジナル
573 人が閲覧しました

5 Easy Performance Tweaks for Node.js Express

キーポイント

    生産モードは、開発モードでのロギングと例外スタックトレースタスクを排除するため、
  • 生産モードに切り替えると、エクスプレスアプリケーションのパフォーマンスが大幅に向上する可能性があります。
  • Express 4.xでGZIP圧縮を有効にすると、HTTP負荷を減らし、パフォーマンスを向上させることができます。これは、圧縮モジュールをインストールし、最初のミドルウェア関数として使用することで実行できます。
  • 不要なミドルウェアの削除、よりシンプルなテンプレートエンジンを使用し、共通変数を効果的にキャッシュすることで、エクスプレスアプリケーションのパフォーマンスをさらに最適化できます。 Gulpなどのビルドツールを使用して、HTMLテンプレート、CSS、およびJavaScriptファイルを圧縮およびマージできます。また、メモリ関連のパフォーマンスの問題を回避するために、セッション変数を制限する必要があります。
  • node.jsはWeb開発を完全に変更し、Expressフレームワークは消えない貢献をしました。 Expressは最速または最も高度なサーバーオプションではない場合がありますが、ほぼ間違いなく最も広く使用されており、1か月あたり300万件以上のダウンロードがあります。何もしない場合、node.jsとExpressも非常に迅速に実行されます。ただし、Express 4.xをより速く実行する簡単な方法がいくつかあります...

    生産モードに切り替えます
  1. Expressは複数のモードで実行できます。デフォルトでは、例外スタックトレースやその他のロギングタスクを提供する開発モードであると想定しています。コンソールにメッセージを記録するデバッグモードもあります。たとえば、

ライブサーバーでは、生産モードに切り替えることでパフォーマンスを大幅に向上させることができます。これは、node_env環境変数を生産に設定することで実行できます。 Expressアプリケーションを開始する前に、Windowsの現在のセッションで設定できます。
<code>DEBUG=express:* node ./app.js</code>
ログイン後にコピー
ログイン後にコピー

またはmac/linux:

<code>set NODE_ENV=production</code>
ログイン後にコピー
ログイン後にコピー

Linuxユーザーは、Startupのラインでnode_envを設定することもできます:

<code>export NODE_ENV=production</code>
ログイン後にコピー
ログイン後にコピー

理想的には、

または対応するスタートアップスクリプトに
<code>NODE_ENV=production node ./app.js</code>
ログイン後にコピー
ログイン後にコピー
を追加して、環境を構成する必要があります。

<code>export NODE_ENV=production</code> ~/.bash_profile

gzip
  1. を有効にします Express 4.Xは、ミドルウェアで強化できる利用可能な機能の最小量を提供します。それほど明白ではない機能がGZIP圧縮です。これにより、HTTP負荷が減少し、ブラウザが受信時にスケーリングできるようになります。 GZIPを追加するには、NPMを使用して圧縮モジュールをインストールします。
(セットアップによっては、Mac/LinuxでSudoを使用する必要がある場合があります。この問題を解決する方法はたくさんあります。)メインアプリケーションの起動ファイルには、圧縮モジュールを含めます。

次に、最初のミドルウェア関数として(他のExpress:使用方法の前)としてインストールします:
<code>npm install compression --save</code>
ログイン後にコピー
ログイン後にコピー
<code>DEBUG=express:* node ./app.js</code>
ログイン後にコピー
ログイン後にコピー
  1. 不要なミドルウェアを削除

Expressジェネレーターまたは同様の手順を使用して事前に構築されたアプリケーションを生成した場合、使用していないミドルウェアモジュールを削除します。たとえば、Cookieを使用していない場合は、Cookie-Parserモジュールを削除するか、Req.CookiesとRes.Cookiesを使用してより簡単な代替手段を実装できます。生産モードでは、デバッグ出力など、一部のプロセスを削除できます。

<code>set NODE_ENV=production</code>
ログイン後にコピー
ログイン後にコピー
言い換えれば、サーブファビコンを維持することが最善です。ブラウザは頻繁にfavicon.icoファイルを要求し、モジュールはキャッシングを改善できます。

  1. よりシンプルなテンプレートエンジンの使用 Jadeは、多くのエクスプレスインストールのデフォルトのテンプレートエンジンであり、それは良い選択です。ただし、独自のHTMLを書いて喜んで、基本的な補間と評価のみが必要な場合は、Express-Dot-Engineモジュールを使用してExpress Middlewareとして追加できるDOTなどの軽量の代替品を使用することを検討してください。または、次のような単純な応答を得るために、テンプレートエンジンをバイパスできます。
使用しているテンプレートエンジンに関係なく、常にキャッシュを表示することを確認してください。

<code>export NODE_ENV=production</code>
ログイン後にコピー
ログイン後にコピー

キャッシュを覚えておいてください!

<code>NODE_ENV=production node ./app.js</code>
ログイン後にコピー
ログイン後にコピー
  1. ほとんどのサーバーベースのアプリケーションとは異なり、node.jsアプリケーションは永続的に実行されます。そのため、データベース接続オブジェクトのような一般的な変数を一度設定し、各ユーザーの各リクエスト中にそれらを再利用できます。この概念は、必要に応じて拡張できます。一般的に言えば、キャッシュできる一般的なアイテムがあればあるほど、パフォーマンスが向上します。たとえば、ExpressベースのCMSアプリケーションがホームページの最後の5つの投稿へのリンクを示しているとします。リストは変数に生成および保存でき、新しい記事が公開されたときにのみ更新されます。
  2. 余分なクイックヒント

もっと欲しい? …

nginxを使用して静的コンテンツを提供し、node.jsとexpressの負荷を減らすことを検討してください。

Gulpなどのビルドツールを使用して、HTMLテンプレート、CSS、およびJavaScriptファイルを圧縮およびマージします。

    セッション変数の使用を制限します。ユーザーセッションデータは通常、メモリに保存され、使用量が増加するにつれてパフォーマンスの問題につながる可能性があります。 IDのみを使用して、リクエスト中にデータベースからユーザー情報を取得することを検討してください。
  • httpソケットの最大数を5つより高い数値に増やします。たとえば、
  • 可能な場合は、順次ではなく操作のブロックシーケンスを呼び出します。
アプリケーションの初期化を除くすべてで同期ブロッキングコールを使用しないでください。
<code>npm install compression --save</code>
ログイン後にコピー
ログイン後にコピー
    は、1つのユーザーブロックのコードが互いのユーザーに対して実行されているため、コードが実行されることに常に注意してください。
  • node.jsまたはexpressの他のパフォーマンスのヒントはありますか?コメントで聞いてみたいです。
  • (node.jsパフォーマンスのチューニングに関するFAQの章をここに追加する必要があります。

以上がNode.js Expressの5つの簡単なパフォーマンス微調整の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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