OSでどれ位変わる? Linux v.s. Windows10

記事
IT・テクノロジー

OSでどれ位変わる? Linux v.s. Windows10

先日、M1 チップを使った Mac と Windows のメモリ管理の機能を比べた記事を投稿しました。 数年前の Windows10 に比べると、メモリの使用量が増えたときの性能の低下は最新のバージョンではかなり改善されているようでした。

ところで、OS による違いも気になるところですよね? 残念ながら現時点では、M1 チップを使った Mac では Windows を動かすことができないので比べることはできません。しかし、同じ PC で Windows10 と Linux の OS を入れて比較は可能なので試してみました。開発の主力 PC を Windows10 のラップトップから Mac に切り替えたのを機に、今まで Windows10 で開発に使っていた PC を Linux に変えてみました。

この記事は、先日メモリ管理のテストで利用した、Vue のフロントエンドのプロジェクトの公開用のイメージの生成(build)にかかる時間を比較してみました。

使用した OS は

* Linux(Ubuntu 20.10)
* Windows10(20H2) です。
使用した PC は、

* Intel Core i3 (第3世代 4005U 1.7GHz)
* Memory 8GB DDR3
* SSD 512GB
と言うハードウエアの仕様です。

Windows10 と Linux の処理時間

比較に使用したのは、SendGrid を利用したメルマガ(ニュースレータ)配信のためのフロントエンドのユーザーインターフェース(UI)の公開用のイメージを作成に要する時間です。 Vue CLI の UI を使って公開用のイメージを生成する際にログファイルに残される処理の所要時間で比較しています。

イメージの生成に要した時間は、以下の様になっています。参考に M1 の Mac での処理時間も入れておきました。

         最小 最大 平均
Windows10:  38.9 45.5 41.3
Linux:      36.5 37.8 36.9
M1 Mac(参考):  21.4 23.0 21.7
(単位:秒)

全く同じ PC で比べましたが、僅かですが Linux で処理をした方が平均でも約5秒速く処理できている事がわかります。時間にすると約5秒ですが、Linux の方が 10%以上少ない時間で処理できることになるので、思っているより大きな差がある事がわかります。

開発に利用する場合は Linux は意外に便利な選択肢です

さすがに最新の Mac は高速ですが、Linux を使うと 10%以上は処理時間を改善できるとするとこの差は結構大きいです。先日、古い PC をアップグレードする記事を投稿しましたが、主にハードウエアの改善という観点でしたが、実は OS も Windows を使うより Linux を利用した方がさらに改善できる様です。

実際に、Linux で Web 開発環境を作ろうとすると、ほぼ同じようなアプリを利用できます。

* VSCODE は Linux 版があります
* Node.js も使えます
* Git も使えます
* npmのモジュールも利用できるます

ということで、npmを利用して、React や Vue も使えるので Web 開発という観点で考えるとほぼ同じアプリで開発環境を整える事ができます。

Micorosoft のオフィスの代わりに、Google Doc/Sheet などを使えばドキュメンテーションなどもカバーできます。

開発のサブマシーンとしてネットワーク経由で利用できる!

便利なのは、Winodows10 では Pro バージョンでないリモートデスクトップを介してアクセスする事ができませんが、Linux の場合は Windows や Mac からリモートデスクトップで利用できます。

RDB(Remote Desktop Protocl)を利用すると、Windows からも Mac からもリモートデスクトップを利用できます。Ubuntu の Linux から利用するには

$ sudo apt install xrdp

インストールした後に Xrdp のサービスを起動します

$ sudo systemctl enable xrdp

このあと、Ubuntu 側のファイアウォールの設定をします。直接インターネットに接続していないような場合は、全てのアクセスを許可しても問題になる場合が少ないので以下のように、XRDP で使用するポートの「3389」を全て許可します。

$ sudo ufw allow 3389

セキュリティ上特定のコンピュータからのアクセスのみを許可する場合は

$ sudo ufw allow from xxx.xxx.xx.xx/xx to any port 3389

のように、IP アドレスや IP アドレスの範囲を指定します。

これで、Windows のリモートデスクトップを利用すれば Linux の PC にネットワーク経由でアクセスできるようになります。Mac の場合は、App ストアから Microsoft Remote Desktop のアプリをインストールすればアクセスできる様になります。

メインの PC で開発しながら別のコンピュータで作業する場合、ディスプレイを切り替える方法もありますが、ネットワーク経由でリモートデスクトップを使うと切り替える手間もかかりませんし、別の場所にサブの PC を置いておいても問題なく利用できるので便利です。

まとめ
同じハードウエアを使って、Vue の公開イメージを生成する時間を比較したところ Linux を利用した方が 10%程度処理時間を改善できることがわかりました。

古い PC を開発のサブ機として利用する場合、Linux を OS にして、ネットワーク経由でリモートデスクトップを利用できる様にすると、開発のメインの PC から利用できるので便利です。

Web 開発の場合、Windows/Mac とほぼ同じ様な開発用のアプリを利用して開発環境を作ることができるので、新しい開発用の PC を購入された場合、古い PC の活用法としてお勧めです!
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す