Python 3.x整数の場合、ビットシフトよりも2倍高速ですか?
私はsorted_containersのソースを見ていて、この行を見て驚いた: self._load, self._twice, self._half = load, load * 2, load >> 1 これloadは整数です。ある場所でビットシフトを使用し、別の場所で乗算を使用するのはなぜですか?2による整数除算よりもビットシフトの方が速い場合があるのは理にかなっていますが、乗算もシフトで置き換えてみませんか?私は以下のケースをベンチマークしました: (回、除算) (シフト、シフト) (回、シフト) (シフト、除算) そして#3は他の選択肢よりも一貫して速いことがわかりました: # self._load, self._twice, self._half = load, load * 2, load >> 1 import random import timeit import pandas as pd x = random.randint(10 ** 3, 10 ** 6) def test_naive(): a, b, …