五、其他变化
下面是新版本中一些其他方面的性能改善:
u 元组和字典仅仅存放垃圾收集器不再跟踪的不可跟踪对象
u 一个新的配置选项--with-computed-gotos。这个选项能够使字节码估价循环使用一个新的调度机制,并能提速20%(并非所有编译器都可用)。
u 在之前的版本中整数占据15位,现在可以在15位或者30位之间进行选择。30位整数在64 位系统上速度更快,但是在32位系统上的速度尚不清楚。 所以,在64 位系统上时默认为30位,在32位系统上默认为15位。对于UNIX操作系统,可以使用另一个新的配置选项即--enable-big-digits来覆盖这个默认设置。
六、Python 3的程序库迁移
您可能已经听说了,Python 3是一个颇具争议的版本,因为它缺乏对Python 2.x的向后兼容性。Python开发团队虽然在简化从Python 2.x到Python 3.x的迁移方面做了大量的工作,但是他们仍然没有将所有现有的第三方程序库全部迁移到Python 3版本。遗憾的是,对于许多项目来说,这仍然是一个主要问题。所以,这里还有一个先有鸡还是先有蛋的问题。程序库开发人员不会积极将其程序库移植到Python 3,除非他们的用户要求他们这样做。同时,用户也在等待所有依赖的程序库全部移到Python 3,这是它们才会将项目移植到Python 3。
Python语言的程序包索引中包含了大约5000个通用的软件包,同时还有50个专门用于Python 3的软件包。 当然,这5000个软件包中可能含有一些已经无人维护的软件包。但是被大量项目所使用的一些“轴心”软件包却是要移植的关键软件包。人们通常认为,Python 3之所以没有引起太大的轰动,是因为许多“轴心”软件包,例如numpy、PIL和twisted还没有移植到Python 3的缘故。毫无疑问,重要的软件包通常更大,并也更复杂,所以移植起来也更加费时。
七、小结
就像您看到的那样,在Python 3.1中的关键功能、方便性和性能方面发生了许多改进。这个版本再次向世人证明,Python语言是多么的稳固,它的开发人员和社区又是多么的可信赖的。它是一个非常均衡的版本,无论是核心语言还是标准程序库,两个方面都照顾到了。用一句话概括:这是一个产品级的版本。