Python专题, 语言

Python的for循环的时间开销测试

Python 是解释型语言,而非编译型语言,对 for 循环会有比较大的时间开销。这里不讨论 Python 的底层原理,将直接给出代码测试 Python的 for 循环的计算时间,用于之后做其他计算时的数值参考。

Python 测试代码:

import time

start_time = time.time()
for _ in range(10**8):
    pass
end_time = time.time()
print(end_time-start_time)

start_time = time.time()
for _ in range(10**6):
    for _ in range(10**2):
        pass
end_time = time.time()
print(end_time-start_time)

start_time = time.time()
for _ in range(10**4):
    for _ in range(10**2):
        for _ in range(10**2):
            pass
end_time = time.time()
print(end_time-start_time)

print('---')

for num in range(11):
    times = 10**num
    start_time = time.time()
    for _ in range(times):
        pass
    end_time = time.time()
    print(f'10^{num}: {end_time-start_time}')

运行结果:

2.2707338333129883
1.6098830699920654
1.5754427909851074
---
10^0: 1.1920928955078125e-06
10^1: 1.6689300537109375e-06
10^2: 2.1457672119140625e-06
10^3: 2.1219253540039062e-05
10^4: 0.00021266937255859375
10^5: 0.0023064613342285156
10^6: 0.022001028060913086
10^7: 0.221541166305542
10^8: 2.4560723304748535
10^9: 33.21372199058533
10^10: 781.5104327201843

大致结论:当总的循环次数超过 10^10 次,即超过 100 亿时,这时候可以考虑对代码进行优化,例如使用 Numba、Cython 等工具,或者将 Python 代码改写成其他更高效的编程语言。

其他博文参考:

35 次浏览

【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code