%time: 在行模式下,代码运行一次所花费的时间。
%%time:在单元模式下,代码运行一次所花费的时间。
%timeit: 在行模式下,执行代码块若干次,取最佳结果。
%%timeit: 在单元模式下,执行代码块若干次,取最佳结果。
1)注解:
2)举例:
In[102]: %%timeit # 用于单元模式
...: for num in range(1, 10000):
...: result = 0
...: for factor in range(1, num):
...: if num % factor == 0:
...: result += factor
...: if result == num:
...: print(num)
...:
6
28
496
8128
6
28
496
8128
6
28
496
8128
6
28
496
8128
6
28
496
8128
6
28
496
8128
6
28
496
8128
6
28
496
8128
7.57 s ± 311 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
In[102]: %timeit # 用于行模式。当在其后添加代码块时,将无法得到想要的测试结果
...: for num in range(1, 10000):
...: result = 0
...: for factor in range(1, num):
...: if num % factor == 0:
...: result += factor
...: if result == num:
...: print(num)
...:
6
28
496
8128
timeit [-n<N> -r<R> [-t|-c] -q -p<P> -o]
选项:
-n <N>: 在循环中执行给定语句<N>次。如果未提供<N>,则确定一个可以获得足够的精度<N>值。
-r <R>: 重复次数<R>,每个重复次数由<N>个循环组成,并获得最佳结果。默认值:7
-t: 使用time.time来测量时间,这是Unix上的默认值。此功能测量实际时间,非CPU用户时间。
-c: 使用time.clock来测量时间,这是Windows上的默认设置,用于测量实际时间。在Unix上,使用resource.getrusage代替并返回CPU用户时间。
-p\ <P>: 使用<P>位的精度显示计时结果。默认值:3
-q: 不打印结果。
-o: 返回一个TimeitResult,可以将其存储在变量中以进行检查。