python - 为什么 Python 循环变慢?
问题描述
我创建了一个while
循环和print
每个循环的时间戳。一开始我的表现大约是每秒 33 次循环。然而,花费的时间越长,它就越慢。在 3 分钟时,我的性能是每秒 2 个循环。我尝试threading.Timer
改用,但它做同样的事情。我知道计算的内存和复杂性可能是一个问题,但在那种情况下似乎并非如此。
当我想运行代码几个小时时,如何避免性能不足?您的帮助将不胜感激。
import time
while(True):
print(int(round(time.time() * 1000)))
输出
1556756682157
1556756682216
1556756682240
1556756682269
1556756682296
1556756682324
1556756682358
1556756682387
1556756682415
1556756682441
1556756682470
1556756682501
1556756682556
... // After 3 minutes
1556756860002
1556756860884
1556756861240
1556756861669
1556756862596
1556756863324
1556756863858
1556756864387
解决方案
根据此处完成的测试,打印可以大大减慢您的循环。删除打印,您的速度不应再下降那么快。请参见下面的示例:
from time import time
start = time()
for i in range(1_000_000):
print(i)
print(f'run time for printing: {time() - start}')
start = time()
for _ in range(1_000_000):
pass
print(f'run time for no printing: {time() - start}')
this is what it printed:
# a ton of numbers above this line from printing
run time for printing: 7.047402858734131
run time for no printing: 0.0870048999786377
推荐阅读
- java - 从 Azure Blob 存储中获取记录时在服务器端 (Java) 进行分页
- c# - 添加 JWT 身份验证后,CookieAuthenticationOptions.AccessDeniedPath 和 LoginPath Redirect 停止工作
- flutter - 颤动:我想要顶部的曲线夹
- apache-kafka - Aerospike kafka 源连接器
- python - 未找到“{{ feature.featurename }}”的反向。'{{ feature.featurename }}' 不是有效的视图函数或模式名称
- regex - Ruby正则表达式返回未修改的字符串?
- google-sheets - 有没有办法让谷歌表格将英制高度读取为数字?
- sql - 如何在 DBT 中创建一个填充了变量和静态数据的表
- javascript - 在垂直鼠标滚动上水平滑动
- java - 唯一索引和复合索引不支持嵌套路径