除了来自单元格的原始输出之外,我还想花费在单元格执行上花费的时间.
为此,我试过%%timeit -r1 -n1但它没有公开在单元格中定义的变量.
%%time 适用于仅包含1个语句的单元格.
In[1]: %%time
1
CPU times: user 4 µs, sys: 0 ns, total: 4 µs
Wall time: 5.96 µs
Out[1]: 1
In[2]: %%time
# Notice there is no out result in this case.
x = 1
x
CPU times: user 3 µs, sys: 0 ns, total: 3 µs
Wall time: 5.96 µs
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?
我已经在Nbextension中使用Execute Time已经有一段时间了.太棒了.
我不明白之间的差别number,并repeat在timeit库中,所以会请你告诉我它们之间有什么区别呢?
我正在尝试测量代码不同部分的执行时间,每部分几行。我使用 %%timeit 执行此操作,但是在执行单元格后,我发现为单元格中的变量计算的值不会保留在下一个单元格的内存中,如下例所示。
为什么会出现这种情况?有没有办法保留这些值,以便我可以在程序的其余部分使用它们?
In [1]: %%timeit
...: dog='dog'
100000000 loops, best of 3: 16.2 ns per loop
In [2]: print (dog)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-16-c61686862278> in <module>()
----> 1 print (dog)
NameError: name 'dog' is not defined
Run Code Online (Sandbox Code Playgroud)
这对我来说听起来似乎是一个微不足道的问题(或者我期望的默认行为),但我无法在网上找到任何信息,所以我希望有人可以提供帮助。
我在test.py中编写了这个简单的代码(在python中).我尝试运行timeit,我没有任何错误,但我没有得到任何有关运行时间的信息.你能帮助我吗 ?
import timeit
def functionsWhile():
"Desc about function"
lic = 0
n = 30000
while lic<= n:
lic += 1
#print "test"
return lic
t = timeit.Timer("functionsWhile()", "from __main__ import functionsWhile")
try:
t.repeat(3, 2)
except:
t.print_exc()
Run Code Online (Sandbox Code Playgroud)
我期待一个结果如(例子):
$>python test.py
[0.006793975830078125, 0.006793975830078125, 0.006793975830078125]
$>
Run Code Online (Sandbox Code Playgroud)
但我只有:
$>python test.py
$>
Run Code Online (Sandbox Code Playgroud)
我没有timeit的结果.我使用python 2.7和linux.