ipython中查看代码执行时间的魔法命令----%time、%timeit、%%time、%%timeit

1、%time、%timeit、%%time、%%timeit的比较


%time: 在行模式下,代码运行一次所花费的时间。
%%time:在单元模式下,代码运行一次所花费的时间。

%timeit: 在行模式下,执行代码块若干次,取最佳结果。
%%timeit: 在单元模式下,执行代码块若干次,取最佳结果。

1)注解:

1> 行模式: 只对紧跟其后的代码进行测试。即无法使用换行符来添加代码块进行测试。
2> 单元模式: 用于代码块的测试。它不仅对紧跟其后的代码发挥作用,通过换行符添加的其余代码,会被视为一个整体进行测试。其中,第一行代码用作设置代码(已执行但未计时),并且单元的主体已计时。单元主体可以访问在设置代码中创建的任何变量。


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

 此返回结果含义:进行了100万次循环操作,取了其中7次最好的结果,统计这最好的7次最好结果的平均时间及标准差。

 

2、%timeit 和 %%timeit 的具体参数:
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,可以将其存储在变量中以进行检查。
 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值