Pythonの計算でマイナスをするときは足し算で計算した方が早い説
今回はPythonの計算でマイナスをするときは足し算で計算した方が早い説を唱えていきたいと思います。
Pythonの計算でマイナスをするときは足し算で計算した方が早い説
表題では分かりにくいかもしれませんが、
1 + (-1)
の計算と
1 – 1
の計算はどちらが早いのかを調べてみました。
用意したコードは次のコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# 1 + (-1)のパフォーマンスチェック import time resultList = [] for j in range(100): testList = [] start = time.time() for i in range(10000000): a = 1 + (-1) process_time = time.time() - start print(str(j+1) + ' times.') resultList.append(process_time) print(process_time) print('') ave = sum(resultList) / len(resultList) print(resultList) print('平均: ' + str(ave)) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# 1 - 1のパフォーマンスチェック import time resultList = [] for j in range(100): testList = [] start = time.time() for i in range(10000000): a = 1 - 1 process_time = time.time() - start print(str(j+1) + ' times.') resultList.append(process_time) print(process_time) print('') ave = sum(resultList) / len(resultList) print(resultList) print('平均: ' + str(ave)) |
結論を書くと、
1 – 1
の計算と
1 + (-1)
の計算とであまり実行結果は変わりませんでした。
内部で
1 – 1を1 + (-1)、
もしくは
1 + (-1)を1 – 1
のどちらかに書き換えてるっぽいです。
書き換え時間があまり変わらないので、実行結果にあまり差がないわけですね。
それぞれを3回実行してみた結果は次の通りです。
1 2 3 4 5 6 7 8 9 10 |
# 1 + (-1)を3回実行してみた結果 # 1回目 平均: 0.43365428447723386 # 2回目 平均: 0.4436957883834839 # 3回目 平均: 0.4284823226928711 |
1 2 3 4 5 6 7 8 9 10 |
# 1 + 1を3回実行してみた結果 # 1回目 平均: 0.43041611671447755 # 2回目 平均: 0.4660903882980347 # 3回目 平均: 0.4276044273376465 |
終わりに
今回はPythonの計算でマイナスをするときは足し算で計算した方が早い説を唱えました。
結果を見ると、あまり実行時間は変わらなかったですね。
PythonやPythonを使ったライブラリやフレームワークのパフォーマンスの調査に興味があり、様々なコーディング方法の違いによる最適化の調査を行っております。
リストにまとめてあるので、よろしければ覗いてみてください。
Pythonとそのライブラリやフレームワークのパフォーマンス調査結果リスト
ディスカッション
コメント一覧
まだ、コメントがありません