ノードのためのむしろ無意味な性能テスト


だから今日はかなり無意味なパフォーマンステストを行います.
私は、ノードのバージョンが単純なパフォーマンステストにどんな違いをもたらすかについて疑問に思っていました.
それが正しくなければならないので?

テスト
シンプルなHello Worldスクリプトをコピーして貼り付けました.
const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});
それからApacheベンチをインストールするか、ab 叩くab -c500 -n100000 http://localhost:3000/しかし、どのように別のバージョンを取得するには?ノードのバージョン管理はLinux上の痛みであり、Mac上の悪夢であり、私はWindows上でそれを試していないが、私はそれが楽しいと想像することはできません.
ここでは、実際の有用なビットは、アプリと呼ばれるn . ちょうどそれを介してインストールsudo npm install -g n そして、あなたは突然ノードのバージョンを切り替えるための非常に強力なツールを持っている.
それで、あなたがLTS版を望むならば?
 % sudo n lts

  installing : node-v12.19.0
       mkdir : /usr/local/n/versions/node/12.19.0
       fetch : https://nodejs.org/dist/v12.19.0/node-v12.19.0-linux-x64.tar.xz
   installed : v12.19.0 (with npm 6.14.8)

簡単.

結果
各々のテストは、3つの回、実行されました.コードが作成された変更、またはテストが実行された方法はありません.これはすべて私の第8世代I 5ラップトップから実行されました:
version     req/s  1         2          3
14.13.1      9732.52     9866.98     9894.88
13.14.0     11065.33    12051.36    12247.49
12.19.0      9261.99     9926.34     9869.66
11.15.0     12510.51    13466.22    13783.50
10.22.1     11740.82    11925.83    11727.70
 9.11.2     12702.04    13667.15    13632.01
 8.17.0     10570.54    11579.70    11914.19
 7.10.1     11062.46    11622.44    11650.05
 6.17.1      9236.92     9293.16     9593.82
 5.12.0      8991.05     9790.51     9560.93
面白い.バージョン5、6と7から、この単純なメトリックからのパフォーマンスの明らかな増加があります.その後、バージョン8に、それは平坦化を開始し、何か奇妙な12と14のために発生します.

このテストは何を示していますか.
これは、ハードウェアのこの非常に限られたセットでは、非現実世界のコード例の場合は、何秒あたりの要求は何でしょう.
そのことだ.
これから、私たちは、本当に、バージョンの間の主な違いについて何も話すことができません、あるいは、そのバージョンが我々のコードを生産で走らせることになっているでしょう.

だからこれは無数の数字ですか?
いいえ、まあ、しかし、私がこれをした理由は、「最新のものが最も大きい」という概念への私の偏見を反証しようとすることでした.コードがバージョン番号のバンプから恩恵を受けるのであれば、実際にテストするには、いくつかのことを理解する必要があります.
  • どのようなコードを行うとどのように新しいバージョンを変更する
  • あなたのコードのパフォーマンスが現在どのように見えるか
  • パフォーマンス以外のものはアップグレードしない理由です.
  • ほとんどの場合、あなたがマイナーとバグのバージョンの間に移動している場合は、セキュリティがアップグレードする最大の理由です.特にあなたに影響を与えるバグがあるならば、それもまた上がるもう一つの大きな理由です.

    それでは何?
    私は現在、Gatlingのようなツールで我々の生産コードベースのパフォーマンスを正しく測定していて、他のボトルネックとメモリ問題を見つけるためにコードを追跡しています.一旦我々が現在の数字が何であるかについて理解するならば、我々はそれから将来のアップグレードの前に比較して、対照するそれらを使うことができます.
    我々は、生産コードのLTS(長期サポート)バージョンに付着するポリシーを持っている.これは、ノードのバージョンの範囲の後、私たちのスタック内のさまざまなプロジェクトで使用されている、すべての種類の問題のテスト、展開、開発などのツールn すぐにバージョンを変更するのに役立ちました、しかし、あなたがバージョンのために一つの方針を持っているならば、それはものを少しより単純にします.
    表紙画像jacqueline macou Pixabayから