Pythonの条件分岐でnotをつけるとやっぱり動作は遅くなる?(Python3)

今回はPythonの条件分岐でnotをつけると本当に動作が遅くなるのか、動作が遅くなるとしたらどれくらい遅くなるのかについて調査した結果をまとめたいと思います。

動作環境はPython3です。



Pythonの条件分岐でnotをつけるとやっぱり動作は遅くなる?(Python3)

いきなりですが、次の二つのソースを用意しました。

一番上のソースがnotをつけない場合の条件分岐がある処理、下のソースがnotをつけた場合の条件分岐がある処理です。

それぞれ1億回ループを回し、それを100セット実行して実行時間の平均を出力しています。

なお、内部の処理をできるだけ合わせるために、notをつけた場合は2文字目までは比較でヒットし、3文字目で比較でアンヒットさせるようにしています。

それぞれについて、実行結果は次のようになりました。
途中printを多く挟んでいますが、平均実行時間の出力結果のみ貼り付けます。

〜notをつけない場合の実行結果〜

〜notをつけた場合の実行結果〜

結果を見ると、確かにnotをつけた場合は遅くなります。
0.37秒ほど離れているので、notをつけた場合の方が遅いということはきちんと計算したわけではありませんが統計的に有意と言えそうです。

しかし、ほぼ誤差と言って差し支えないですね。
この程度の実行時間の速さを求めるよりも可読性が良いソースを作成することを心がけた方が良さそうです。

終わりに

今回はPythonの条件分岐でnotをつけると動作は遅くなるのか、どのくらい遅くなるのかについて調査した結果を書きました。

結論を言うと、確かにnotを多用すると遅くはなりますが、そこまでパフォーマンスが落ちることはなさそうです。

最後までお読みいただきありがとうございます。
よろしければブログやTwitterでのシェアをお願いいたします。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。






Python

Posted by ちこ