zoukankan      html  css  js  c++  java
  • dis进行反编译

      摘录自官方文档:

    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不是关键字,只是一个全局变量而已

  • 相关阅读:
    简单SSO(Single signon)的另类实现方式,钩子技术
    URL
    [恢]hdu 1287
    [恢]hdu 1220
    [恢]hdu 1015
    [恢]hdu 2095
    [恢]hdu 1862
    HDOJ 300!
    [恢]hdu 1029
    [恢]hdu 1016
  • 原文地址:https://www.cnblogs.com/sageskr/p/4080252.html
Copyright © 2011-2022 走看看