PythonでTrueとFalse、どちらを初期で格納した方が処理が早いのか(Python3)

2021年9月11日

今回はPythonでbool型の変数にTrueとFalse、どちらを初期で格納した方が処理が早いのか実際に確かめてみました。

動作環境はPython3です。



PythonでTrueとFalse、どちらを初期で格納した方が処理が早いのか(Python3)

本当は別の実験をしてみたかったのですが、その前提条件がフェアなのかどうか調べたいため一旦TrueとFalse、どちらを初期で変数に格納した方が動作速度が早いのか調べてみます。

bool型のTrueとFalse、どちらを初期で格納した方が処理が早いのか調べるに当たって次のようなコードを用意しました。

まずは変数にTrueを格納する動作を1億回ループ、それを三回実行させるコードです。

一方、変数にFalseを格納する動作を1億回ループ、それを三回実行させるコードがこちらになります。

手始めにこれらを実行したところ、それぞれ次のような実行結果となりました。

〜変数にTrueを格納する動作を1億回ループさせる動作を3回繰り返した場合〜

〜変数にFalseを格納する動作を1億回ループさせる動作を3回繰り返した場合〜

ぱっと見、二つの処理について動作速度はほぼ差はないように見えます。

しかしこれだけではなんとも言えません。
まだ試行回数が不十分です。

よって、1億回ループさせる動作をそれぞれ100回実行させてみました。

次のコードを用意して変数に格納する動作を自動的に1億回ループさせることを100回繰り返すようにしました。
勝手に動作速度平均も出力させるようにします。

実証するためのソースコードは、次の通りです。(変数にFalseを格納するソースについては似たようなコードになるため省きます。)

途中printを挟んで100回それぞれの計測タイムを出力しているようにしていますが、その出力結果は省いて平均タイムのみ載せます。

〜変数にTrueを格納する動作を1億回ループさせる動作を3回繰り返した場合〜

〜変数にFalseを格納する動作を1億回ループさせる動作を3回繰り返した場合〜

結果を見ると、最初にTrueではなくFalseを格納した方が処理が早いという結果になりました。

bool型の変数宣言をする場合はFalseを宣言した方が動作が早くなりそうです。

しかしながら、ほとんど誤差に近いのでそこまで意識する必要はないかもしれないですね。

終わりに

今回はPythonでbool型の変数にTrueとFalse、どちらを初期で格納した方が処理が早いのかについてパフォーマンス調査を行いました。

PythonやPythonを使ったライブラリやフレームワークのパフォーマンスの調査に興味があり、様々なコーディング方法の違いによる最適化の調査を行っております。
リストにまとめてあるので、よろしければ覗いてみてください。
Pythonとそのライブラリやフレームワークのパフォーマンス調査結果リスト

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

直接契約ができるフリーランスエージェント「エンハンス」を立ち上げました。
詳しくは下記LPをご参照ください。
https://enhance.decryption.co.jp/

Youtubeチャンネル開設いたしました。
チャンネル登録者10,000人を目指しているので、良いと思った方はチャンネル登録をお願いしたいです。
https://www.youtube.com/channel/UC219XhmSRxmXltTy6COxSMw






Python

Posted by ちこ