码迷,mamicode.com
首页 > 其他好文 > 详细

dis进行反编译

时间:2014-11-07 00:51:18      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:http   ar   使用   sp   on   代码   bs   html   ad   

  摘录自官方文档:

https://docs.python.org/2/library/dis.html

 

回头自己也脑补下。

 

可以使用dis查看自己代码的复杂度之类的东西。

 

比如while 1 和while True哪个效率更高。

 

定义两个方法,分别使用while循环

def w() :
  while 1 :
    pass

def w2() :
  while True:
    pass

单从功能上说,两种无任何区别,那么,来看看字节码上的区别:

import dis  #载入反编译模块,Python内置的

dis.dis(w) #对应的是while 1,下面是输出
  2           0 SETUP_LOOP               3 (to 6)

  3     >>    3 JUMP_ABSOLUTE            3
        >>    6 LOAD_CONST               0 (None)
              9 RETURN_VALUE

dis.dis(w2) #对应的是while True,下面是输出
  2           0 SETUP_LOOP              10 (to 13)
        >>    3 LOAD_GLOBAL              0 (True)
              6 POP_JUMP_IF_FALSE       12

  3           9 JUMP_ABSOLUTE            3
        >>   12 POP_BLOCK
        >>   13 LOAD_CONST               0 (None)
             16 RETURN_VALUE

很明显, while 1的字节码只有while True的一半. 为什么呢? 因为Python2.x中True不是关键字,只是一个全局变量而已

dis进行反编译

标签:http   ar   使用   sp   on   代码   bs   html   ad   

原文地址:http://www.cnblogs.com/sageskr/p/4080252.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!