[发明专利]一种代码执行方法及装置有效
申请号: | 201510797067.7 | 申请日: | 2015-11-18 |
公开(公告)号: | CN106708497B | 公开(公告)日: | 2020-05-12 |
发明(设计)人: | 李爽 | 申请(专利权)人: | 上海木鸡网络科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 吴敏 |
地址: | 200030 上海市崇明县*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 执行 方法 装置 | ||
一种代码执行方法及装置,所述方法包括:转换源代码为中间代码,所述中间代码用于解释执行或编译执行;所述编译执行不支持阻塞操作;解释执行所述中间代码;所述解释执行所述中间代码时动态评估代码特性,若评估结果满足编译执行的触发条件,则切换为编译执行所述中间代码。所述方法及装置可以提高代码执行效率。
技术领域
本发明涉及计算机领域,尤其涉及一种代码执行方法及装置。
背景技术
计算机技术的发展日新月异,计算机技术已广泛应用于各个领域。计算机技术的基础之一就是代码的执行,通过执行代码以达到预期的目标和效果。
代码的执行可以分为单线程异步执行和多线程执行,或者说可以分为阻塞操作和非阻塞操作两种操作模式。阻塞操作是某个进程/某段程序等待在那里,可以是等待某个信号、某个文件准备好,某个网络包数据接收完成等等,之后才可以继续运行。非阻塞操作就是指当线程执行这些方法时,如果操作还没有就绪,就立即返回,而不会一直等到操作就绪。
现有技术不能兼顾两种操作模式的优点,执行效率有待提高。
发明内容
本发明解决的技术问题是如何提升代码的执行效率。
为解决上述技术问题,本发明实施例提供一种代码执行方法,包括:
转换源代码为中间代码,所述中间代码用于解释执行或编译执行,所述编译执行不支持阻塞操作;
解释执行所述中间代码;
在所述解释执行所述中间代码时动态评估代码特性,若评估结果满足编译执行的触发条件,则切换为编译执行所述中间代码。
可选的,所述的代码执行方法还包括:在编译执行所述中间代码时动态评估代码特性,若评估结果满足解释执行的触发条件,则切换为解释执行所述中间代码。
可选的,所述编译执行的触发条件包括:所述中间代码出现调用频度高于频度阈值的代码段。
可选的,所述解释执行的触发条件包括:所述中间代码出现阻塞操作。
可选的,所述代码执行方法适于在浏览器中执行;所述解释执行所述中间代码包括:利用浏览器可直接运行的脚本语言编写的解释器解释执行所述中间代码;所述编译执行所述中间代码包括:编译所述中间语言为浏览器可直接运行的脚本语言。
可选的,所述浏览器可直接运行的脚本语言包括:JavaScript语言,所述编译执行所述中间代码还包括,在编译所述中间语言为JavaScript语言后,由JavaScript引擎执行。
可选的,所述中间代码为虚拟机器指令代码。
本发明实施例还提供一种代码执行装置,包括:代码转换单元、解释执行单元、第一切换单元、编译执行单元;其中:
所述代码转换单元,适于转换源代码为中间代码,所述中间代码用于解释执行或编译执行;所述编译执行不支持阻塞操作;
所述解释执行单元,适于解释执行所述中间代码;
所述第一切换单元,适于在所述解释执行所述中间代码时动态评估代码特性,若评估结果满足编译执行的触发条件,则切换至所述编译执行单元,以编译执行所述中间代码。
可选的,所述代码执行装置还包括:第二切换单元,适于在编译执行所述中间代码时动态评估代码特性,若评估结果满足解释执行的触发条件,则切换至所述解释执行单元,以解释执行所述中间代码。
可选的,所述编译执行的触发条件包括:所述中间代码出现调用频度高于频度阈值的代码段。
可选的,所述解释执行的触发条件包括:所述中间代码出现阻塞操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海木鸡网络科技有限公司,未经上海木鸡网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510797067.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种超低密度聚乙烯的制备方法
- 下一篇:前列环素类似物缓释制剂