WindowsとUbuntu(WSL)に配置したNode.jsプロジェクトのビルド速度の比較
Node.jsを使った開発プロジェクトでWSLが有用かどうか検証するため、Windowsに配置したプロジェクトと、WSL上のUbuntuに配置したプロジェクトの2つで、Visual Studio Codeでビルドした際の速度を比較してみました。
目次
- PCのスペック
- ビルド対象のプロジェクトについて
- ビルド速度の比較
- 最後に
PCのスペック
使用するPCはLenovoの「Ideapad S340(14、AMD)」です。
スペックは以下の通り。
- CPU)AMD Ryzen 5 3500U
- メモリー)8GB PC4-19200 DDR4 SODIMM
- ストレージ)256GB NVMe SSD(Western Digital SN520)
ビルド対象のプロジェクトについて
ビルド対象となるプロジェクトは『Nuxt.js』のプロジェクトに『Firebase』関連のライブラリを追加したもので、ベースはNuxt.jsのプロジェクト生成ツール「create-nuxt-app」を使って作成したものになります。
画面数は1つと規模的には小さく、新たに追加したファイルは10個もありません。
追記したコード量は1,000行程度です。
ビルド速度の比較
計測するコマンドは以下の2つ。
- yarn dev ... 動作確認
- yarn generate ... 本番環境へのデプロイ用ファイル生成
先日の新旧MacBook Airの比較記事で計測したものと同じコマンドなので、ついでにMacBook Air(2012、11インチ)の速度も合わせて併記しておきます。
ビルドの結果は以下の通り。
yarn dev | yarn generate | |
---|---|---|
S340(WSL、Ubuntu) | 3.7秒 | 17.2秒 |
S340(Windows) | 5.7秒 | 23.0秒 |
MacBook Air(2012) | 6.2秒 | 27.8秒 |
2つのコマンド「yarn dev」と「yarn generate」の両方とも、Windowsで実行するよりもWSL上のUbuntuで実行した方が速度が速くなっています。
しかも誤差とかではなく、明らかに違うレベル。
今回はファイル数の少ないプロジェクトでの結果なので、規模の大きなプロジェクトではもっと差がつくと思います。
最後に
WSL上のLinux OSは、デバイス操作のコマンドやDockerといったものが使えないようですが、それが不要なプロジェクトであれば、『VSCode × WSL』での開発はかなり使えそうです。
個人レベルのWeb開発では、学習目的くらいでしかDockerは使わないので、WindowsのWSL環境の構成で問題ないと思います。
また、Windowsのpowershellから「yarn add」でバージョンにキャレット(^)を付加してパッケージをインストールする時、キャレットを4つ(^^^^)記述しないといけませんでしたが、WSL使用時はあくまでLinux OSでの動作となるため、このような問題も発生しませんでした。