キンサクプログラマー

お金儲けと技術のメモ

pythonの演算比較してみたらシフト演算が遅い事に気づいた

ダイクストラ法の実行時間を計測しようとtime関数をいれて見てたら気づいた。

import time

a = 6
print(str(time.time()) + "sec")
a = a >> 2
print(str(time.time()) + "sec")
a = a/2
print(str(time.time()) + "sec")
a = a+2
print(str(time.time()) + "sec")
a = a-2
print(str(time.time()) + "sec")
a = a%3
print(str(time.time()) + "sec")

結果

1499435910.268803sec
1499435910.268897sec
1499435910.268913sec
1499435910.26895sec
1499435910.268968sec
1499435910.268981sec

最適化されて割り算と同じならまだしも、シフト演算の方が遅い。
良かれと思ってシフトしたらあんまよくなさそうなので、ご注意を。