Pythonでのインポートモジュールの最適化
-
30-10-2019 - |
質問
私はデイビッド・ビーズリーのPythonリファレンスブックを読んでいます、そして彼は主張します:
たとえば、多くの平方根操作を実行している場合、「Math.sqrt(x)」を入力するのではなく、「Math Import SQRT」と「SQRT(X)」を使用する方が速いです。
と:
メソッドまたはモジュールの検索を頻繁に使用することを含む計算の場合、最初に実行する操作を配置することにより、属性のルックアップを排除する方がほとんど常に優れています。
私はそれを試してみることにしました:
最初()
def first():
from collections import defaultdict
x = defaultdict(list)
2番目()
def second():
import collections
x = collections.defaultdict(list)
結果は次のとおりです。
2.15461492538
1.39850616455
これらのような最適化は、おそらく私には関係ありません。しかし、私は、なぜビーズリーが書いたことの反対が真実であるようになるのか興味があります。そして、1秒の違いがあることに注意してください。これは、タスクが些細なことであることを考えると、それは非常に重要です。
なぜこうなった?
アップデート:
私は次のようなタイミングを取得しています:
print timeit('first()', 'from __main__ import first');
print timeit('second()', 'from __main__ import second');
正しい解決策はありません
所属していません StackOverflow