React.Net と SuperchargedReact の両方の実装を使用して、ASP.NET Web サイト内から React コンポーネントのサーバー側レンダリングを試しています。
私の初期負荷テストの結果は、単一のリクエストはかなり迅速に (約 100 ミリ秒) 処理できることを示していますが、同時リクエストではパフォーマンスが急速に低下します (> 4 秒)。詳細は以下。
おそらく、私はこれらのツールを最大限に活用しておらず、テストは大雑把でしたが、パフォーマンスの改善をどこから始めればよいかアドバイスが必要です.
質問
大まかにどのレベルの同時実行を期待する必要がありますか? たとえば、同時実行は、メモリに保持できる JavaScript エンジン インスタンスの数に制限されています。または、IIS ワーカー プロセスの数に依存します。または、他の何か。
パフォーマンスを向上させるには、どこから始めるべきですか - ヒント? トリック?資力?
SuperchargedReact が多くのパフォーマンス改善を実装していると思われる場合に、React.Net のパフォーマンスが低下する理由を説明できます。
テストの詳細
browserify/babelify/gulp-minify を介して ES6 ソースから js バンドルを作成しました。次に、反応コンポーネントがグローバル変数を介して公開されました。反応ルーターは含まれておらず、ルーターなしで動作するように SuperchargedReact にいくつかの小さな変更が加えられました。
スレッド数と 1 分あたりのリクエスト数の制限が異なる別のサーバー上の JMeter から、約 5kb のサーバー側レンダリング ページを 1 つリクエストしました。
React.Net の結果
10スレッド
req/min | avg ms | min ms | max ms
100 | 138 | 90 | 1,161
500 | 256 | 4 | 2,049
1000 | 566 | 31 | 4,969
20 スレッド
req/min | avg ms | min ms | max ms
100 | 284 | 88 | 1,964
500 | 432 | 52 | 3,649
1000 | 1,557 | 75 | 4,405
50スレッド
req/min | avg ms | min ms | max ms
100 | 1,393 | 91 | 4,693
500 | 1,723 | 19 | 10,523
1000 | 4,418 | 97 | 32,769
SuperchargedReact の結果
10スレッド
req/min | avg ms | min ms | max ms
100 | 763 | 7 | 2,194
500 | 2,149 | 263 | 5,160
1000 | 2,270 | 149 | 4,865
React.Net よりもかなり悪いように見えたので、この時点で SuperchagedReact のテストを中止しました。