Python 虚拟机
来源:互联网 发布:人工智能龙头股有哪些 编辑:程序博客网 时间:2024/05/29 19:13
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 基础的兄弟,在闲暇时翻看⼀一⼆二。
Code)。⽽而后,这些字节码会被虚拟机在⼀一个 "巨⼤大" 的核⼼心函数⾥里解释执⾏行。这是导致 Python 性
能较低的重要原因,好在现在有了内置 Just-in-time ⼆二次编译器的 PyPy 可供选择。
当虚拟机开始运⾏行时,它通过初始化函数完成整个运⾏行环境设置:
• 创建解释器和主线程状态对象,这是整个进程的根对象。
• 初始化内置类型。数字、列表等类型都有专⻔门的缓存策略需要处理。
• 创建 __builtin__ 模块,该模块持有所有内置类型和函数。
• 创建 sys 模块,其中包含了 sys.path、modules 等重要的运行期信息。
• 初始化 import 机制。
• 初始化内置 Exception。
• 创建 __main__ 模块,准备运⾏行所需的名字空间。
• 通过 site.py 将 site-packages 中的第三⽅方扩展库添加到搜索路径列表。
• 执⾏行⼊入⼝口 py ⽂文件。执⾏行前会将 __main__.__dict__ 作为名字空间传递进去。
• 程序执⾏行结束。
• 执⾏行清理操作,包括调⽤用退出函数,GC 清理现场,释放所有模块等。
• 终⽌止进程。
Python 源码是个宝库,其中有⼤大量的编程范式和技巧可供借鉴,尤其是对内存的管理分配。个⼈人
建议有 C 基础的兄弟,在闲暇时翻看⼀一⼆二。
0 0
- Python 虚拟机
- [Python] Python 虚拟机 - virtualenv
- python虚拟机的理解
- Python虚拟机实现
- Python虚拟机运行过程
- python 操作 azure 虚拟机
- Python虚拟机的初始化概览
- Python学习之虚拟机环境
- Python虚拟机的函数机制
- 浅析Python虚拟机执行框架
- python虚拟机virturalenv的使用
- (Python学习8)Python虚拟机框架
- 《python源码剖析》笔记 Python虚拟机框架
- Cobra —— 可视化Python虚拟机
- [笔记]Python虚拟机的运行时基本知识
- [笔记]Python虚拟机对函数的解释
- java虚拟机/python/编程语言的概念
- windows下安装python虚拟机环境virtualenv
- 437. Path Sum III
- Java开发工具_Eclipse快捷键大全
- 大数据Spark “蘑菇云”行动补充内容第69课: Spark SQL案例之分析电影评分系统.
- Java序列化的中级认识
- Unity发布GooglePlay游戏的一些注意事项
- Python 虚拟机
- jquery配合.NET实现点击指定绑定数据并且能够一键下载
- 安卓滑动隐藏显示菜单功能实现(还有蒙板校果),只显示一半view
- 当电脑的wmic 显示不是内部或外部命令的解决方法以及查看电脑最大支持内存
- Qt 用宏来控制代码版本
- ubuntu16.04 vim 添加python支持
- JQuery 总结
- JavaScript奇淫技巧(一)
- (poj)Catch That Cow