見出し画像

パソコンの話です、「0081夜 5年前のより、ざっくり2倍速でした」

専門誌最新号にLinuxの特集が出ていましたので、購入。自分のPCで試せそうなコードも出ていましたのでやってみました。「これ、速さ比べに使えそう!」ということで、今日の話題にしてみます。

今、使っているのは2015年頃購入のパソコンです

今使っているノートパソコンは、いつ買ったものなのか、うろ覚えですが、CPUがCeleron N2840(2.16GHz)ということで、検索してみると2014年第三四半期に初出荷されたようです。なので多分、2015年に購入したのだと思います。メモリーは4GB。
昨年、Pythonで人工知能系のプログラムを動かした時に、ストレスが高そうで、あまり調べずに、買ったノートパソコンがCeleron 3867U(1.8GHz)搭載で、メモリーはやはり4GB。こちらのCPUは2019年第一四半期の出荷とのことです。
この2台で比べてみるというのが、今回のテストです。

すんなりGo言語をインストール

さて、雑誌に掲載のコード(プログラム)は数行です。「.go」とあるので、Go言語であることに間違いありません。「go build」でコンパイルする必要があります。名前は聞いたことがありますが、「Go言語」なんてやったことがありません。そもそもコンパイルする環境が入っているのか、そこから確認しなくてはなりません。2015年購入パソコンでまずやってみます。このマシンはLinux(Ubuntu 20.04)のみ入っています。(Windows環境はありません) ターミナルから、わざと「go」だけ入力してEnterキーを押すと、「sudo apt install golang-go」でインストールできる旨、メッセージがでました。
インストラクションの通りにやってみると、すんなりインストールができました。

エディタはnanoで充分

さて、統合環境などもきっとあるのかもしれませんが、買ってきた雑誌の記事には、数行のコードが書いてあるだけですから、これも一番簡単なテキストエディタで書いてしまえばよさそうです。
変なところにファイルを作ってしまうと後々やっかいなので、雑誌名のディレクトリーに移ってから「202104」と2021年4月号をあらわすディレクトリーを作り、nanoエディタでforループ10000000000回(!)のコードを打ち込みました。(雑誌掲載のままです。執筆者の環境で実行時間2、3秒になるので、このループ回数のようです)
前述のように「go build」でコンパイル、「time ./(コンパイル済み実行ファイル)」で所要時間が表示されました。

昨年購入パソコンはデュアルブートです

昨年、購入のノートパソコンはWindows 10とLinux (やはりUbuntu 20.04)のデュアルブートにしてあります。毎日のnote執筆には2015年購入機を使っていますので、あまり出番はないのですが、ちゃんと月に2、3度は立ち上げて、OS更新くらいはしています。実際には、Windowsでないとできないことや、マシンパワーの違いが必要になるような場面(AI系コードの実行)くらいしか使っていません。
そのデュアルブート機で、Ubuntuを立ち上げ、同様の手順でGo言語を導入し、同じコードをコンパイルして実行。ざっくり半分の所要時間であることが確認できました。
この時点ではボーッとしておりましたが、Windows 10の方もWSL(Windows Subsystem for Linux)を入れてあったのを思い出しました。

ということでWSL環境でも試しました

WSLではいくつかのディストリビューションの選択肢がありますが、素直にここもUbuntuです。(多分20.04)WSLはしばらく放ったらかしだったのだと思います。Windows 10に入り直して、Power ShellからWSLを呼び出し、「sudo apt update」「sudo apt upgrade」をやってみるとそれなりの数のパッケージが更新されました。その後は同じ手順でテストをしたところ、2015年購入機との比較でやはりだいたい倍速でした。デュアルブート機内での比較(ネイティブLinux vs. WSL)ではほんの少しだけWSLの方が時間がかかるという結果でした。

2021年3月22日のコメント

実はもう1台、テストしたいマシンがあります。デュアルブート機はCeleron搭載で、Pythonの最新Tensorflowパッケージ(とそれに依存するKeras)が使えなかったため、頑張ってCore i5搭載機を中古ですが買い増ししたのです。
今後の投稿のため、こちらのテストは、温存しておきます。
多分、明日は別のネタです。
それでは、また!

いいなと思ったら応援しよう!