def measure_time(self):
logger = init_logger("measure_time")
logger.info("Begin measure time")
loaded_module = SourceFileLoader(
self.module_name,
self.path_to_module).load_module()
all_functions = inspect.getmembers(loaded_module, inspect.isfunction)
fun_names = []
for i in all_functions:
fun_names.append(i[0])
if self.function_to_measure.split("(")[0] not in fun_names:
logger.info("ArgFunNameError raised because "
"of no function with this name")
logger.debug(self.function_to_measure.split("(")[0])
logger.debug(all_functions)
raise ArgFunNameError
returns_values_list = []
init_struct_code_copy = self.init_struct_code
for i in range(0, self.repeats):
setup = "from {0} import {1}; {2}"\
.format(self.module_name, self.function_to_measure.split("(")[0],
init_struct_code_copy)
@exit_after(self.timeout)
def __inside_measure():
returns_values_list.append(
timeit.timeit(self.function_to_measure, setup=setup,
number=1))
__inside_measure()
logger.debug(init_struct_code_copy)
logger.info("Times loop: " + str(i))
init_struct_code_copy = add_step(init_struct_code_copy, self.step)
logger.info(returns_values_list)
logger.info("End measure time")
return returns_values_list
评论列表
文章目录