python 字节码 优化_python,_Python 字节码优化问题,python - phpStudy
Python 字节码优化问题
问题背景:
Python在执行的时候会加载每一个模块的PyCodeObject,其中这个对象就包含有opcode,也就是这个模块所有的指令集合,具体定义在源码目录的 /include/opcode.h 中定义了所有的指令集合,在执行的时候通过加载opcode完成指令的流水线执行过程,opcode也就是所有指令集合生成的字符串。执行体位于源码目录的 /Python/ceavl.c 中PyEval_EvalFrameEx()函数就是虚拟机的执行体函数,它会加载指令集合并完成运算。
问题描述:
在PyEval_EvalFrameEx()函数中,同样是通过标准状态机模型完成的指令解析,一个巨大无比的switch结构,类似这样:
在C中,switch语句的执行是逐条对比的,也就是说每一条指令在执行的时候都需要从头对比,因为这里的指令集合是不平均分布的,但是我们可以假设每个指令平均需要匹配n次,n > 1,其实是远远大于1的。
具体问题:
是否可以做优化,为什么作者没有做优化? 如果不采用switch状态机,因为指令码也是有编号的,是否可以直接采用类hashtable的形式来做?
附注:
如果此问题很2请亲提出宝贵的意见
相关阅读:
在java开发当中 创建对象时,该使用基本类型还是引用类型?(并说明为什么)
为什么用runtime获取不到uiview的alpha属性?
goagengt最近一直warning,伴随着几个error
请教一个nginx的过滤正则
python爬虫中,使用HTMLParser如何解析获取多个标签中的文本
明明导入了模块,为什么用的时候回出现undefin variable?
CSS布局flex问题
求你们手中关于JS中Deferred的资料
XMPP聊天服务器选择
怎么写promise的链式调用
存有100万个<2^20正整数的文件中找到任意一个不在其中的数
jqueryui与jqueryeasyui冲突的问题
symfony2,odbc,sql server 2000参数化问题
segmentfault直接在文本框里ctrl+v就可以上传截图,是如何实现的?
aws cli工具能用在自己写的服务器上吗
程序发布之后swingworker不能正常工作
用gulp再次自动复制时怎样清除已经复制过去的目标文件?
关于mysql数据库查询问题
js修改id后无法触发事件
Bootstrap的Modal.js里的'click.bs.modal.data-api'在哪里触发?
python 字节码 优化_python,_Python 字节码优化问题,python - phpStudy相关推荐
- python判断素数的函数_Python素数prime函数练习_Python源码实操
Python素数prime函数练习_Python源码实操 素数prime函数练习 1) 写一个函数isprime(x) 判断x是否为素数,如果是素数,返回True,否则返回False def ispr ...
- python编码使用ascii编码_Python中的编码问题:ASCII码 Unicoden编码 UTF-8编码
编码 字符串是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节 ...
- python多线程执行同样代码_Python 多线程、多进程 (一)之 源码执行流程、GIL
一.python程序的运行原理 许多时候,在执行一个python文件的时候,会发现在同一目录下会出现一个__pyc__文件夹(python3)或者.pyc后缀(python2)的文件 Python在执 ...
- python源码深度剖析_Python源码剖析——深度探索动态语言核心技术 | 学步园
8.3 Python虚拟机的运行框架 当Python启动后,首先会进行Python运行时环境的 初始化.注意这里的运行时环境是一个与上一节剖析的执行环境不同的概念.运行时环境是一个全局的概念,而执行 ...
- python 字符串转字典 编码_python基础--2(字符串、元组、列表、字典、集合、文件、编码转码)...
python支持的数据类型 int 整数型 float 浮点型 complex 复数,实数+虚数,虚数部分以"j"或"J"结尾,a+bj或者complex(a, ...
- python中int占几个字节_Python中的整型占多少个字节?
说到计算机中的整型,相信很多人都会联想到32位整型(或者int),是程序员日常生活中用的最多的一种类型.32位整型顾名思义,占用32个位也就是4个字节,取值范围−2,147,483,648~ 2,14 ...
- 深入理解 python 虚拟机:令人拍案叫绝的字节码设计
深入理解 python 虚拟机:令人拍案叫绝的字节码设计 在本篇文章当中主要给大家介绍 cpython 虚拟机对于字节码的设计以及在调试过程当中一个比较重要的字段 co_lnotab 的设计原理! p ...
- python 源码安装教程_python安装步骤
编译安装python3.6的步骤 1.下载python3源码包 2.下载python3编译的依赖包 yum install -y gcc patch libffi-devel python-devel ...
- python爬取天气预报源代码_python抓取天气并分析 实例源码
[实例简介] Python代码抓取获取天气预报信息源码讲解.这是一个用Python编写抓取天气预报的代码示例,用python写天气查询软件程序很简单.这段代码可以获取当地的天气和.任意城市的天气预报, ...
- python 源码编译教程_python源码编译
尝试通过源码自己编译 Python,使用的系统是 Ubuntu14.04 LTS. 首先去官网下载源码,地址:源码下载.下载完成之后,解压源码: 1tar -zxvf Python-2.7.12.tg ...
最新文章
- rhel6ACL权限
- 定制或外购适配器规格需求列表
- lucene 搜索_使用Lucene的搜索服务器搜索Jira问题
- 阿里云云效何勉:云原生是“精益实践”的最佳助力
- Refusing to install package with name “vue-i18n“ under a package
- 【转】百度站长平台MIP引入工具使用心得
- Android P (1)---开发指南
- 小技巧——直接在目录中输入cmd然后就打开cmd命令窗口
- Helm 3 完整教程(十二):Helm 函数讲解(6)字典函数
- 几个北邮和交大学霸的公众号,值得学习
- GBT 39323-2020 乘用车车道保持辅助(LKA)系统性能要求及试验方法
- 戴尔公司大中华区总裁黄陈宏 要烧哪三把火
- “币圈老虎机”Uniswap:冒险者的天堂,韭菜的地狱
- win10 mac的clover双系统后 win10时间不同步问题
- JSP前三章测试改错
- 自动化测试之Appium
- uni-app 170邀请加入群聊(二)
- Linux强制修改root用户密码
- 解决时间输出格式带 T 带 000+00:00 输出时间多了个T 返回时间格式带T
- mysql数据库出现缓慢_MySQL查询缓慢的N种原因,以及N+1种解决方法
热门文章
- Proteus:单片机锁存器控制数码管亮灭
- 自定义相机旋转拍照角度
- 弘辽科技:拼多多最容易拿到免费流量的两大核心。
- RHEL7软件包的管理
- Android 浏览器分辨率调整,让Android上的浏览器用设备实际像素打开你的网页
- WCF 4.0 进阶系列 – 第十四章 检测服务和路由消息(第四部分)
- 湖南工业大学大学计算机教育网,湖南工业大学教务管理系统入口http://jwc.hut.edu.cn/...
- python编程基础之二十七
- 经典重读《信号与系统》-第一章
- centos7 安装MySQL5.7启动报错journalctl -xe 、mysql.sock' (2)处理办法及安装MySQL5.7