Python中优化了多少位置';s字节码(版本2.5)
有谁能告诉我Python字节码中有多少地方进行了优化? 最近我试图反编译Python的字节码,但我发现在Python的2.5版中有很多优化Python中优化了多少位置';s字节码(版本2.5),python,bytecode,Python,Bytecode,有谁能告诉我Python字节码中有多少地方进行了优化? 最近我试图反编译Python的字节码,但我发现在Python的2.5版中有很多优化 a,b,c=([],[],[])#build list 版本2.5之前的非优化字节码如下所示: BUILD_LIST_0 BUILD_LIST_0 BUILD_LIST_0 BUILD_LIST_4 UNPACK_LIST_ STORE_NAME 'a' STORE_NAME 'b' STORE_NAME 'c' 在版本2.5中,优化的字节码如下所示:
a,b,c=([],[],[])#build list
版本2.5之前的非优化字节码如下所示:
BUILD_LIST_0
BUILD_LIST_0
BUILD_LIST_0
BUILD_LIST_4
UNPACK_LIST_
STORE_NAME 'a'
STORE_NAME 'b'
STORE_NAME 'c'
在版本2.5中,优化的字节码如下所示:
BUILD_LIST_0
BUILD_LIST_0
BUILD_LIST_0
ROT_THREE
ROT_TWO
STORE_FAST 'a'
STORE_FAST 'b'
STORE_FAST 'c'
这只是一个例子,但还有许多其他地方可以优化。那么,有人知道有没有一些文档可以澄清这些优化,或者告诉我如何才能找到它们吗?我认为没有任何文档本身,但是有Python解释器的C代码。您可以找到它的几个不同版本。源文件基本上是执行所有此类优化的地方——我提供的链接指向当前版本(2.6或更高版本),因为我在访问动态源代码浏览器时遇到问题,但是,一旦它再次工作,就很容易看到特定版本,例如(比如)2.5.2的现有版本,或者任何其他需要此信息的特定版本。但是我在Python 2.5中找不到此文件