多少地方在Python的字节码进行优化(版本2.5)(how many places are opt

2019-10-16 14:07发布

谁能告诉我有多少地方有在Python的字节码进行优化? 我试图去编译Python的字节码,这些天,但我发现,在Python的2.5版本有很多optimization.For例子:这个代码

a,b,c=([],[],[])#build list

version2.5之前非优化的字节码是这样的:

BUILD_LIST_0
BUILD_LIST_0
BUILD_LIST_0
BUILD_LIST_4
UNPACK_LIST_
STORE_NAME 'a'
STORE_NAME 'b'
STORE_NAME 'c'

在version2.5中,优化代码是这样的:

BUILD_LIST_0
BUILD_LIST_0
BUILD_LIST_0
ROT_THREE
ROT_TWO
STORE_FAST 'a'
STORE_FAST 'b'
STORE_FAST 'c'

这只是一个例子,但也有许多其他地方可能被优化。 所以,做anybode知道有一些文件,以澄清这些优化或告诉我哪种方式我可以找到所有的人?

Answer 1:

在Python的/ peephole.c源文件是基本上执行所有这些优化-我给的链接是最新的版本(2.6或更高),因为我遇到了麻烦的动力之源浏览器在这里 ,但一旦它再次工作很容易看到具体的版本,比如一个是现存的任何其他特定版本,你需要这些信息(比如说)2.5.2或。



Answer 2:

我不认为有任何文件本身,而是有一个为Python解释器的C代码。 你可以找到几个不同的版本,它在这里 。



文章来源: how many places are optimized in Python's bytecode(version 2.5)