LoginSignup
40
22

More than 5 years have passed since last update.

React、Vue.js、Riotのレンダリング速度の比較をやってみた

Last updated at Posted at 2017-04-30

実際のところどうなんだろうと思って試してみました。がどれがいいとかいう基準ではなく単純に私の興味的なところで試しただけですので。。

バージョン等々

各JSのバージョンは以下。

ライブラリ バージョン
React 15.5.4
Riot 3.4.3
Vue.js 2.3.0

テストにはMochaとNightmareを使ってみました。

ライブラリ バージョン
gulp-mocha 3.3.0
nightmare 2.10.0

それぞれのソースはgithubにあげてます。書き方がおかしいところあるかもしれませんが...
https://github.com/hayashida/js-comparison

今回試したこと

最初は

  • JSONデータを10,000件取得して表示する

ただそれだけをしてみました。
結果としてはこんなかんじ。

ライブラリ 1回目 2回目 3回目 4回目 5回目
React 2719ms 2611ms 2560ms 2612ms 2807ms
Vue.js 1110ms 1788ms 1079ms 1785ms 1842ms
Riot 1532ms 1479ms 1477ms 1493ms 1549ms

私としては意外にもRiotが早いことに驚きました。載せているのは5回だけですがRiotはわりと安定して描画しているようでした。そしてReactが思ったより伸びなかったのも...という感じでした。

これだけではあっさり終わってしまうので少し条件を加えて再度試してみました。

  • spanタグからinputタグに変更
  • inputタグをnumberとtextで分岐させて表示する
ライブラリ 1回目 2回目 3回目 4回目 5回目
React 7257ms 7067ms 7157ms 6118ms 7988ms
Vue.js 5596ms 5535ms 6209ms 6075ms 3300ms
Riot 9296ms 9444ms 10010ms 9937ms 12259ms

そうするとVue.jsは安定していますがRiotが少し遅いかんじになってしまいました。処理が加わると色々と影響がでるのかもしれませんね。

ちなみにファイルサイズはこんなかんじ。

ファイル名 サイズ(byte)
react.js 784616
vue.js 243437
riot.js 125145

このあたりはコンパイルの仕方によっても変わってくるかもしれませんが参考程度に。

まとめ

テストとしていいものかはわかりませんが私としては結構おもしろかったです。
ただ冒頭に書いたようにじゃあVue.jsをお勧め。というわけではなく作るものや状況によって一番いいものを選ぶのが大事だと思いますので本当に参考程度で。
色々と試すよりも一つを極めた方がいいものは作れると思います。

40
22
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
22