Python如何运行程序

程序执行的标准流程

Python安装在机器上,它包含一个解释器和支持的库。Python程序开始执行之前不需要预编译和连接,大大缩短开发周期。

字节码编译

当Python运行脚本时,第一步需要将脚本编译成“字节码”,字节码是源代码底层的、与平台无关的表现形式,扩展名为“.py”的脚本源文件编译成扩展名为“.pyc”字节码文件,此过程对程序员是不可见的(即透明的)。如果源文件没有被修改,下一次运行程序时将自动加载.pyc字节码文件。

Python虚拟机(PVM)

编译后的字节码文件被发送到Python虚拟机,PVM解释字节码并运行字节码指令,也就是说PVM是实际运行脚本的组件。由于运行的是字节码而不是像C/C++那样运行二进制代码,所以Python的执行效率比C/C++低。

值得注意的是:在一些需要高执行速度的领域,如:数值计算、动画,通过分离一部分需要优化执行速度的应用。将其转换为编译好的扩展,能够到达想要的运行效果。比如NumPy,一个Python的数值计算扩展。
这里写图片描述

Python的实现

Python语言主要有3种实现方式(CPython、 Jython、 IronPython)

CPython
CPython是原始的、标准的Python实现方式,从官网(http://www.python.org)下载的Python就是CPython,由ANSI C语言编写而成。CPython的实现方式如上文描述。
Jython
Jython包含了Java类,这些类编译Python源代码、形成Java字节码,这些Java字节码在Java虚拟机(JVM)上运行。因为Python代码被翻译成Java字节码,在运行时看起来就一个真正的Java程序。Jython要比CPython慢而且也不够健壮。
IronPython
设计IronPython的目的:让Python程序可以与windows平台上的.NET框架、Linux的Mono所开发的应用集成。IronPython将上图中后两个方框换成.NET环境的等效执行方式。

执行优化

Psyco实时编译器
Psyco是一个PVM的增强工具,在程序运行时,可以将部分程序的字节码转换成真正的二进制机器代码。因为字节码到机器码的转换与程序运行同时发生,所以Psyco往往被看做是一个即时编译器(JIT)。
Psyco需要单独安装
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值