以前の記事AWS Cloud9とは?で紹介したAWS Cloud9と同じくブラウザ上でプログラミングできるGoogleのColaboratoryとのPythonでの実行速度の比較をしました。
両方ともブラウザ上で動作するので、ネット回線の速度にも関係してきます。
Colaboratoryは初回の実行時、実行ボタンをクリックしてから処理が終わるまで少し時間がかかるで、iPhoneのストップウォッチで測定しました。(そこは手動なので大目にみてください)
比較のためローカルでの実行結果も掲載します。
実行するコード
実行するコードはなんの意味も無いコードです。
import time #合計を出すためのリストを宣言 goukei = [] #経過時間を10回計測して、goukeiに代入 for i in range(0,10): #処理前の時間を取得 t1 = time.time() #計測したい処理 for i in range(100000000): num = 1 #処理後の時間を代入 t2 = time.time() #経過時間を表示 elapsed_time = t2-t1 print(f"経過時間:{elapsed_time}") goukei.append(elapsed_time) #合計時間をだす goukei2 = sum(goukei) print("合計時間:"+str(goukei2)) #経過時間の平均をだす heikin = sum(goukei)/len(goukei) print("平均時間:"+str(heikin))
1億回 numに1を代入を10回行い、平均値を出力するという処理です。
num に1億回1を代入するところのみ速度を測定しています。
ローカルでの実行
環境はこちらです。
$ python3 timeSokutei.py
で実行しました。
単位は(秒)です。
ローカル 経過時間:6.482249021530151 経過時間:6.5502769947052 経過時間:6.519495010375977 経過時間:6.67773699760437 経過時間:6.5521509647369385 経過時間:6.51288914680481 経過時間:6.5577428340911865 経過時間:6.5581629276275635 経過時間:6.511642932891846 経過時間:6.647625207901001 合計時間:65.56997203826904 平均時間:6.556997203826905
AWSCloud9
実際に実行していきます。
使っている感覚ではとくにレスポンスが遅いと感じたことはありませんが、どうでしょう。単位は(秒)です。
AWS Cloud9 経過時間:7.162149667739868 経過時間:7.123037338256836 経過時間:7.128278493881226 経過時間:7.124325513839722 経過時間:7.147518873214722 経過時間:7.1371684074401855 経過時間:7.158981084823608 経過時間:7.138129234313965 経過時間:7.122908115386963 経過時間:7.159793853759766 合計時間:71.40229058265686 平均時間:7.140229058265686 iPhoneでの測定72.73
合計時間とiPhoneでの測定値の差はおよそ1秒です。
プログラム内の測定外の処理と、私のボタンを押す誤差を考えれば、ほとんど合計時間とiPhoneでの測定値に差はなさそうです。
Colaboratory
実行ボタンを押してから実際に処理が始まるまで、少し待ちました。それを加味してどちらのほうが速いのでしょうか。こちらも単位は(秒)です。
Colaboratory 経過時間:4.901450157165527 経過時間:4.895129919052124 経過時間:4.913864374160767 経過時間:4.893200874328613 経過時間:4.917495250701904 経過時間:4.947901487350464 経過時間:4.927969694137573 経過時間:4.885125637054443 経過時間:4.91829514503479 経過時間:4.920127630233765 合計時間:49.12056016921997 平均時間:4.912056016921997 iPhoneでの測定時間:61.76
合計時間とiPhoneでの測定値の差はおよそ12秒です。
実行ボタンを押してからかなり待った印象です。
しかし、待つのは初回実行時のみで、その後はあまり誤差なく実行できます。
まとめ
まとめると
- AWS Cloud9 : 71.40229058265686秒
- Colaboratory : 49.12056016921997秒
- ローカル : 65.56997203826904秒
このコードの場合、一番実行速度が速いのはColaboratoryでした。
実行ボタンを押してからの待ち時間を考慮しても、ローカルよりCorlaboratoryのほうが速いのは意外でした。
Colaboratoryは設定すれば高性能なGPUを無料でつかえるので、機械学習などでとても重い処理を実行する場合はColaboratoryを使用するのがいいかもしれません。
Cloud9は様々な言語に対応しているので、使い分けると便利に使えそうです。