python 运行程序的过程

前言

Python程序执行时,

  1. 第一步是将Python程序编译成字节码(字节码是源代码底层的, 与平台无关的表现形式, 实现跨平台的重要特性; 字节码可以提高执行速度, 比起文本文件中的源代码语句, 字节码的运行速度要快得多)。注意, 字节码不是机器的二进制代码(例如, Intel芯片的指令), 字节码是特定于Python的一种表现形式

  2. 第二步是字节码转发到Python虚拟机(PVM)中运行(类似Java虚拟机(JVM)), PVM就是迭代运行字节码指令的一个大循环, 一个接一个地完成操作 (PVM不是一个独立的程序, 只是Python系统的一部分)。实际上, PVM循环仍需解释字节码

Ps: 字节码编译过程是对用户完全隐藏的, 如果Python进程在机器上拥有写入权限, 那么它将把程序的字节码保存为一个以.pyc为扩展名的文件(.pyc表示的是编译过的.py源代码 -> python complied)。如果Python没有写入权限, 程序仍然可以工作, 只是字节码会在内存中生成, 并在程序结束时简单地丢弃。

字节码的好处

  1. Python保存字节码可以作为一种启动速度的优化
    如果你在上次保存字节码之后没有修改过源代码, Python将会加载.pyc文件并跳过编译这个步骤。当Python必须重编译时, 它会自动检查源文件和字节码的时间戳, 即当你修改并保存了源代码, 下次程序运行时, 字节码将自动重新创建

  2. 字节码是源代码底层的, 与平台无关的表现形式, 实现跨平台的重要特性

  3. 可以隐藏源代码

-------本 文 结 束 感 谢 您 的 阅 读-------
赞赏一杯咖啡
0%