【问题标题】:time difference between import X and from X import Yimport X 和 from X import Y 之间的时间差
【发布时间】:2019-03-01 14:48:28
【问题描述】:

我注意到导入数学库和仅从数学库导入 sqrt 函数时的执行时间存在细微差别

我创建了两个示例来查看有关时间效率的实际差异。我的问题是为什么这两种方法之间存在差异。

import math
import time
elapsed_time = 0
for j in range(0,20): 
    start_time = time.time()
    for i in range(0,1000000):
        math.sqrt(i)
    elapsed_time += time.time() - start_time
print(elapsed_time/20.0)

输出:0.16759999752

from math import sqrt
import time
elapsed_time = 0
for j in range(0,20):
    start_time = time.time()
    for i in range(0,1000000):
        sqrt(i)
    elapsed_time += time.time() - start_time
print(elapsed_time/20.0)

输出:0.137699997425

【问题讨论】:

  • 一种可能性是,对于第一个示例,您的代码必须在函数启动时在代码中搜索 math.sqrt 函数。但是,第二个示例已经在 计时器开始之前将该函数提供给手,结果会稍微快一些。

标签: python-3.x performance


【解决方案1】:

因为当您执行 import math 时,您在数学库中导入所有函数类或其他东西,而不是使用更多 ram 等,但是当您执行 from math import sqrt 时,您只是在所有数学库中导入 sqrt 函数

【讨论】:

    【解决方案2】:

    您多久运行一次代码?运行你的代码一次没有统计意义。执行机器资源不是您的代码专有的!

    【讨论】:

    • 我已经连续运行了10次代码,差别还是一样
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    相关资源
    最近更新 更多