if 〇〇 != 〇〇とif not 〇〇 == 〇〇はどっちが早い?(Python3)
今回はPython3でif 〇〇 != 〇〇とif not 〇〇 == 〇〇はどっちが早いのかについて調査していきます。
if 〇〇 != 〇〇とif not 〇〇 == 〇〇はどっちが早い?(Python3)
いきなりですが、Python3でif 〇〇 != 〇〇とif not 〇〇 == 〇〇はどっちが早いのか調べるに当たって次の二つのソースを用意しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import time test = 'aaa' resultList = [] for j in range(100): start = time.time() for i in range(100000000): if test != 'bbb': pass process_time = time.time() - start print(str(j+1) + ' times.') resultList.append(process_time) print(process_time) print('') ave = sum(resultList) / len(resultList) print('平均: ' + str(ave)) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import time test = 'aaa' resultList = [] for j in range(100): start = time.time() for i in range(100000000): if not test == 'bbb': pass process_time = time.time() - start print(str(j+1) + ' times.') resultList.append(process_time) print(process_time) print('') ave = sum(resultList) / len(resultList) print('平均: ' + str(ave)) |
ソースを見て分かる通り、一番上のソースがif 〇〇 != 〇〇の動作速度を調査するためのソースで、下のソースがif not 〇〇 == 〇〇の動作速度を調査するためのソースです。
それぞれ条件分岐について1億回処理を行い、それを100回繰り返して動作速度の平均を求めています。
これらを実行して動作速度を調査してみました。
実行結果は次のようになりました。(printをかなり差し込んでますが、平均のみお伝えいたします。)
〜if 〇〇 != 〇〇の場合〜
1 |
平均: 6.370938832759857 |
〜if not 〇〇 == 〇〇の場合〜
1 |
平均: 6.199450590610504 |
結果を見ると、if not 〇〇 == 〇〇の方がif 〇〇 != 〇〇よりも処理が早いという結果になりました。
しかしながら、1億回ループして誤差が0.1秒くらいとほぼ変わらないように見えます。
もう何回かやってみたら結果も変わってくるかもしれません。
電気代を考えなければならないので100回ループで止めておきます。笑
終わりに
今回はif 〇〇 != 〇〇とif not 〇〇 == 〇〇はどっちが処理が早いのかについてパフォーマンス調査を行いました。
結果としては、if not 〇〇 == 〇〇の方がif 〇〇 != 〇〇よりも処理が早いけど動作速度はそんなに変わらないという結果になりました。
PythonやPythonを使ったライブラリやフレームワークのパフォーマンスの調査に興味があり、様々なコーディング方法の違いによる最適化の調査を行っております。
リストにまとめてあるので、よろしければ覗いてみてください。
Pythonとそのライブラリやフレームワークのパフォーマンス調査結果リスト
ディスカッション
コメント一覧
まだ、コメントがありません