python - 如何获取代码在特定 if-elif 构造中花费的时间
问题描述
我正在为虹膜本地化提供一段项目代码。所以在这里我想得到一个人花在一个特定方向上的时间。因此,此外,我希望获得代码在特定 if-elif 构造中花费的全部时间。
我已经尝试过使用 timeit 模块。但是我无法获得代码进入 if 部分的时间以及它离开 while 循环的时间。
thresh = (five_eye[1]-one_eye[1])
print("thresh:",thresh)
# if 13<thresh <16:
# print('CENTER')
# cv2.putText(frameClone, 'CENTER',
(90,40),cv2.FONT_HERSHEY_SIMPLEX, 1.5, (0, 0, 255), 2)
# single_eye_state.append(index)
# single_eye_state.append('CENTER')
if 10<thresh<=13:
start = timeit.timeit()
print('Looking Down 1 Feet')
cv2.putText(frameClone,'Looking Down 1 Feet',
(90,40),cv2.FONT_HERSHEY_SIMPLEX, 1.5, (0, 0, 255), 2)
single_eye_state.append(index)
single_eye_state.append('DOWN1')
end = timeit.timeit()
print(end - start)
elif 7<thresh<=10:
start = timeit.timeit()
print("Looking Down 2 Feet")
cv2.putText(frameClone,'Looking Down 2 Feet',
(90,40),cv2.FONT_HERSHEY_SIMPLEX, 1.5, (0, 0, 255), 2)
single_eye_state.append(index)
single_eye_state.append('DOWN2')
end = timeit.timeit()
print(end - start)
需要代码在 while 循环中花费的总时间。
解决方案
if 或 elif 将只运行该部分中的一个。所以最好只包装 if-elif 构造并获取时间,例如:
start = timeit.timeit()
if condition:
....
elif:
....
end = timeit.timeit()
print(end-start)
如果您想要多个部分的总时间:
total = 0
if condition:
start = timeit.timeit()
....
end = timeit.timeit()
total += end - start
elif:
start = timeit.timeit()
....
end = timeit.timeit()
total += end - start
print(total)
注意:只有一个部分将运行,即,如果在 elif 上。为了清楚起见,我添加了代码。
推荐阅读
- node.js - Can I setup a NestJS server on raspbian
- r - R 降价文件中的库
- rocksdb - RocksDB:太多固定的小尺寸 sst 文件
- python - 使用 Neo4j 将数据添加到图形数据库时出现关键错误。这个错误是什么意思?
- python - 将数据框转换为字典 - python
- javascript - 无法读取未定义的属性“拆分”(调试问题)
- server - OPC 服务器始终为 NULL
- image - OpenCV (cv2) DCT 和 IDCT 是如何工作的?
- prolog - Prolog:在重用相同列表时附加到列表(超出本地堆栈错误)
- c# - C#如何填充和返回列表
从 Parallel.ForEach 使用分区