2020.4.8

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での動作となるため、このような問題も発生しませんでした。

VSCode】関連記事