IPython%timeit magic命令可以很好地测量运行某些Python代码所需的时间.现在,我想在Python脚本中使用类似的东西.我知道timeit模块,但它有几个缺点,例如,如何自适应地选择运行次数?即默认代码
import timeit
t=timeit.Timer("code(f)", "from __main__ import code,f")
t.timeit()
Run Code Online (Sandbox Code Playgroud)
运行代码数百万次.%timeit IPyhton magic命令会自动执行此操作.我建议我可以使用MATLAB代码 http://www.mathworks.com/matlabcentral/fileexchange/18798
自动完成所有工作(并且还告诉函数的开销是否很大).
如何从Python脚本中调用%timeit magic(或者可能有更好的时序解决方案)?
小智 57
这取决于你拥有哪个版本的IPython.如果你有1.x:
from IPython import get_ipython
ipython = get_ipython()
Run Code Online (Sandbox Code Playgroud)
如果您有旧版本:
import IPython.core.ipapi
ipython = IPython.core.ipapi.get()
Run Code Online (Sandbox Code Playgroud)
要么
import IPython.ipapi
ipython = IPython.ipapi.get()
Run Code Online (Sandbox Code Playgroud)
完成后,运行如下魔术命令:
ipython.magic("timeit abs(-42)")
Run Code Online (Sandbox Code Playgroud)
请注意,脚本必须通过运行ipython.
既IPython的和timeit模块,当与被叫python -m timeit,随着越来越多的值执行相同的循环数,直到定时结果超过某一阈值,保证时间测量大多是自由的操作系统干扰.
您可以将魔术的IPython实现%timeit与Python timeit标准模块进行比较,看看它们的作用大致相同.
因此,回答您的问题,您应该复制相同的循环,直到找到number参数的正确值.