3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WindowsのPythonとWSL2/UbuntuのPythonの速度差に驚いた

Posted at

はじめに

今回は、ごく些細な話です。
ちょっと意外だったので書いておきます。

なんかUbuntuの方が速い気がした

僕のPython環境は。
・Windows11にAnaconda/Python3.8
・Windows11のWSL2にインストールしたUbuntu20.04のPython3.8
の2つあります。
どちらもVsCodeから参照して開発・実行できるようにしています。
僕の場合、Pythonはほぼ「自分用ツール作成」に使ってます。
なので、Windows用とUbuntu用をいったりきたりすることが多いですが、なんとなく、同じような処理やテストコードを書いているのに、Ubuntuのpythonの方がなんか速い気がしていました。

簡単なコードでベンチマークしてみた

感覚だけではモヤっとするので、以下のような簡単なコードで試してみることにしました。

import time


def hoge(x, n):
    for i in range(n):
        x = 1 / (x * (x - 1)) + 4.6
        return x


s = time.perf_counter()
print(hoge(0.5, 10000000000000))
print(hoge(0.5, 10000000000000))
print(hoge(0.5, 10000000000000))
print(hoge(0.5, 10000000000000))
print(hoge(0.5, 10000000000000))
print(hoge(0.5, 10000000000000))
e = time.perf_counter()
print(str((e - s) * 1000000) + "マイクロ秒")

処理は以下の記事を参考にしました。
http://verifiedby.me/adiary/0156
これを両方の環境で20回ずつ実行して、平均的な数値で比較してみようというわけです。

比較してみた結果

実際、実行都度、同じ環境でもかなり実行速度にバラつきがでます。
特に、最初の1回が極端に遅くなります。
なので、その数値をはぶいて計測してみました。
結果はこうでした。
・WindowsのPython:平均780マイクロ秒
・UbuntuのPython:平均約70マイクロ秒
あれあれ。
10倍以上違います。
四則演算だけのベンチマークですし、たまたまかもしれませんが、なかなかの差です。
同じWindows11上で動くWSL2上のUbuntuで動くPythonが、本体であるWindows11で動くPythonよりも速いという理屈がよくわかりませんが、事実は事実。
機械計算系とか処理時間がかかるのは、今後WSL2/UbuntuのPythonでやろうと思います。
ではでは。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?