def run_with_tool(cmd, tool, dirname):
profile_path = os.path.join(dirname, 'profile_train.prof')
env = os.environ.copy()
env['TREECAT_THREADS'] = '1'
if tool == 'timers':
env.setdefault('TREECAT_PROFILE', '1')
env.setdefault('TREECAT_LOG_LEVEL', '20')
check_call_env([PYTHON, '-O'] + cmd, env)
elif tool == 'time':
if platform.platform().startswith('Darwin'):
gnu_time = 'gtime'
else:
gnu_time = '/usr/bin/time'
check_call_env([gnu_time, '-v', PYTHON, '-O'] + cmd, env)
elif tool == 'snakeviz':
check_call_env([PYTHON, '-m', 'cProfile', '-o', profile_path] + cmd,
env)
check_call(['snakeviz', profile_path])
elif tool == 'line_profiler':
check_call_env(['kernprof', '-l', '-v', '-o', profile_path] + cmd, env)
elif tool == 'pdb':
check_call_env([PYTHON, '-m', 'pdb'] + cmd, env)
else:
raise ValueError('Unknown tool: {}'.format(tool))
评论列表
文章目录