Python 虚拟机

Python 是⼀一种半编译半解释型运⾏行环境。⾸首先,它会在模块 "载⼊入" 时将源码编译成字节码 (Byte
Code)。⽽而后,这些字节码会被虚拟机在⼀一个 "巨⼤大" 的核⼼心函数⾥里解释执⾏行。这是导致 Python 性
能较低的重要原因,好在现在有了内置 Just-in-time ⼆二次编译器的 PyPy 可供选择。
当虚拟机开始运⾏行时,它通过初始化函数完成整个运⾏行环境设置:
• 创建解释器和主线程状态对象,这是整个进程的根对象。
• 初始化内置类型。数字、列表等类型都有专⻔门的缓存策略需要处理。
• 创建 __builtin__ 模块,该模块持有所有内置类型和函数。
• 创建 sys 模块,其中包含了 sys.path、modules 等重要的运行期信息。
• 初始化 import 机制。
• 初始化内置 Exception。
• 创建 __main__ 模块,准备运⾏行所需的名字空间。
• 通过 site.py 将 site-packages 中的第三⽅方扩展库添加到搜索路径列表。
• 执⾏行⼊入⼝口 py ⽂文件。执⾏行前会将 __main__.__dict__ 作为名字空间传递进去。
• 程序执⾏行结束。
• 执⾏行清理操作,包括调⽤用退出函数,GC 清理现场,释放所有模块等。
• 终⽌止进程。
Python 源码是个宝库,其中有⼤大量的编程范式和技巧可供借鉴,尤其是对内存的管理分配。个⼈人
建议有 C 基础的兄弟,在闲暇时翻看⼀一⼆二。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值