【发布时间】:2016-10-07 14:02:48
【问题描述】:
我正在尝试使用time.time() 来测量代码块的经过时间,
import time
func_time_result = []
t2 = time.time()
for data in data_set:
data_time = dict()
t4 = time.time()
# initialization code for running the function
try:
some_function(data)
except Exception1 as e:
exception_list.append(e)
except Exception2 as e:
exception_list.append(e)
data_time.data_execution_time = time.time() - t4 # iteration execution time
func_time_result.append(data_time)
t3 = time.time()
code_block_time_elapsed = t3-t2
time_in_total = dict()
for time in func_time_result:
for k, v in time.items():
time_in_total[k] += v
问题是code_block_time_elapsed 不等于data_set 在time_in_total['data_execution_time'] 中花费的总时间(例如code_block_time_elapsed 通常为210 秒,而data_set 花费的总时间约为150 秒,所以差异约为 60 秒)。我想知道可能的问题是什么?
some_function 与使用bulk.upsert() 向mongoDB 插入数据有关,data_set 是一个包含 7 个表的列表,每个表有 100k 行。
【问题讨论】:
-
确切的区别是什么(“非常重要”并不能告诉我们太多)?
data_set中的数据结构是什么?为什么要将计时信息存储在time模块中(在time.data_execution_time中)? -
@marcelm 我已经修改了 OP 以详细说明。
标签: mongodb python-3.x time timer