なぜPythonコードが関数内でより高速に実行されるのかという質問につながるコメントを見ました。。
私は考え始め、timeit
ライブラリを使用して自分で試してみることにしましたが、結果は大きく異なります。
(注:物事を少し速くするため10**8
に変更されました)10**7
>>> from timeit import repeat
>>> setup = """
def main():
for i in xrange(10**7):
pass
"""
>>> stmt = """
for i in xrange(10**7):
pass
"""
>>> min(repeat('main()', setup, repeat=7, number=10))
1.4399558753975725
>>> min(repeat(stmt, repeat=7, number=10))
1.4410973942722194
>>> 1.4410973942722194 / 1.4399558753975725
1.000792745732109
timeit
正しく使用しましたか?- 他の質問の結果がほぼ250%異なっていたのに、なぜこれらの結果は互いに0.1%少ない違いがあるのですか?
CPythonでコンパイルされたバージョンのPython(Cythonなど)を使用する場合にのみ違いがありますか?- 最終的に:Pythonコードは関数内で本当に高速ですか、それとも時間の調整方法に依存しますか?