詳しい記事は以下のエントリを参考にすると良い。facebook.github.io安心と信頼の日本語版、koba04記事もあるので見てみて欲しい。blog.koba04.comさて、リリースされたので、実際に会社で作ってるSSRを実施するboilerplateに対して組み込んでみてどれだけ効果があるかを計測してみた。効果については今後計測予定。renderToNodeStreamの結果を計測結果をまとめに追記した。LPDDR3100同時接続で5秒間リクエストを集中的に送ってどれだけ捌けるか、捌いた際にどれだけのレイテンシで返ってきたかを計測した。多少改善されているが劇的な変化ではなかった。かかる時間がそもそも低いのでこんなもんだろうと思っていた。readこれはアップグレードの効果が分かり、パフォーマンスの改善が見込めた。レイテンシーが平均で200ms短縮されているのと、Maxのレイテンシが落ち着いているので、パフォーマンスの振れ幅も小さくなっているのがわかると思う。30程度増加しており、全体的にパフォーマンス改善傾向であることが分かる。高速化されているのは分かったので、さらに奥に入ってフレームグラフがどうなっているのかを調べてみた。これによってCPUの負荷やどこにどれだけ時間がかかっているかを粗く見ることができる。いうツールで作成した*1。時にあったcomponentをマウントする際の深いコールスタックが低くなり、renderingにかかるコストが改善されていることが分かる。画像が全くない純粋にJSとCSSとHTMLだけのページで計測すると次のような結果が出た(複数回実施したが大体毎回こういう計測結果だった)。時間は短縮されているが、全体のLoadまでの時間はそれほど効果はなかった。120KBほどに縮小されているため、もっとLoadまでの時間が速くなっても良さそうだが、弊社の環境ではJavaScriptはgzipやBrotli等で圧縮されてしまっている上に、JavaScriptもCodeSplitにより分割されているので、バンドルされる1つのライブラリのサイズが4分の1になったとしても実際には誤差の範囲になってしまうようだ。実行にかかる時間は短縮されてるのでは?」と考えてみたが、これも実際には変化はなかった。クライアントのフレームグラフを見てみると、こちらもコールスタックは低くなっており、CPU使用率での改善は見込める可能性がありそうだと感じた。よってクライアントで実行するための全体的な時間は延びているものの、CPU使用率には改善が与えられるようになったのではないかと仮説を立てている。どの程度性能向上が見込めるのかをひとまず計測してみた。時間が短縮されており、CPUコストも軽くなった。結果としてはかなり大幅な改善が見込めた。各種React依存のライブラリのアップグレード対応は必要になるものの、migrationもそこまで大変ではなかった。新しく切り出された機能もあるのでそれもtryしていく予定。本日の調査はここまで。renderToNodeStreamの結果を計測したが速くなってなかった。してみたけど全然速くなってなかった。僕の実装が悪いだけかもしれんが。