首先,切勿使用时间模块对功能进行计时。它很容易导致错误的结论。
计时函数调用的最简单方法是使用IPython的%timeit命令。在那里,您只需启动一个交互式IPython会话,调用phase2()
,definequeries
,然后运行
%timeit raw_queries(queries,nlp)
我知道使用timeit的第二种最简单的方法是从命令行调用它:
python -mtimeit -s"import test; queries=test.phase2()" "test.raw_queries(queries)"
(在上面的命令中,我假设脚本称为test.py
)
这个成语是
python -mtimeit -s"SETUP_COMMANDS" "COMMAND_TO_BE_TIMED"
为了能够传递queries
给raw_queries
函数调用,您必须定义queries
变量。在您发布的代码中,在queries
中定义了代码phase2()
,但仅在本地定义。因此,要将其设置queries
为全局变量,您需要执行诸如具有phase2
return的操作queries
:
def phase2():
...
return queries
def phase3():
# Do stuff like phase2() but return queries
return queries