[发明专利]字节码的优化方法、装置、存储介质、处理器及终端有效
| 申请号: | 201711431847.5 | 申请日: | 2017-12-26 |
| 公开(公告)号: | CN108021370B | 公开(公告)日: | 2020-05-12 |
| 发明(设计)人: | 白墨琛 | 申请(专利权)人: | 网易(杭州)网络有限公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/53 |
| 代理公司: | 北京博浩百睿知识产权代理有限责任公司 11134 | 代理人: | 宋子良 |
| 地址: | 310000 浙江省杭州*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 字节 优化 方法 装置 存储 介质 处理器 终端 | ||
本发明公开了一种字节码的优化方法、装置、存储介质、处理器及终端。该方法包括:获取待优化函数;解析待优化函数,得到函数字节码;分析函数字节码,得到与函数调用关联的第一字节码段;替换第一字节码段中父函数调用子函数的第二字节码段,并将子函数的上下文空间合并至父函数,其中,父函数为调用操作的执行主体,子函数为调用操作的执行对象。本发明解决了相关技术中所提供的Python程序运行性能的优化方案复杂度较高、实用性较差、性能提升有限的技术问题。
技术领域
本发明涉及计算机领域,具体而言,涉及一种字节码的优化方法、装置、存储介质、处理器及终端。
背景技术
Python是一种面向对象、解释型的常用计算机编程语言,其以语法优雅、开发迅速、支持动态类型、丰富的标准库等优点著称,因此在不同领域均得到广泛应用。在游戏开发过程中,其主要作为业务逻辑层脚本语言加以使用。然而,在实际项目开发中,Python语言的缺点也十分显著,其中,最大的问题之一便是运行速度缓慢。许多使用Python语言开发的项目在中后期阶段由于业务逻辑日益复杂,计算负荷加重,很容易达到性能瓶颈。经过分析发现,造成这种现象的原因在于:Python解释器本身的设计缺陷。Python语言诞生于上个世纪,当时采纳的许多设计理念已经不适用于当今的硬件条件。在实际使用Python语言的项目研发中,通常需要安排专门的人力去优化程序代码,导致部分生产力浪费在程序优化工作上。
Python解释器在执行程序时,首先将源代码编译为字节码,再利用Python虚拟机加载编译后的字节码执行。基于虚拟机的技术一方面可以实现语言的跨平台特性,另一方面可以实现动态类型支持。相关技术中所提供的字节码优化方案主要可以包括以下几个步骤:
第一步、通过函数开销统计工具(例如:cProfile)统计一段时间内,执行不同函数所消耗的时间。
第二步、针对执行时间较长的函数,分析该函数的源代码,查找存在性能瓶颈的代码。
第三步、修改存在性能瓶颈的代码,以提升程序性能。
第四步、将修改存在性能瓶颈的代码之前的执行开销与修改存在性能瓶颈的代码之后的执行开销进行对比,验证存在性能瓶颈的代码修改是否生效。如果修改未生效,则重复上述步骤,直到程序性能达到运行要求。
基于前述步骤,当定位到存在性能瓶颈的代码时,相关技术中还提供了如下几种优化方案,但这些优化方案大多是基于语言层做出的改进:
方案一、通过修改Python的写法来实现对Python语言的优化。此种方案的缺陷在于:需要逐行手动修改源代码,并且提升的性能效果有限。
方案二、Python源码的C++化来实现对Python语言的优化。该方案虽然可以极大地提升程序运行效率,但是其缺陷在于:开发效率低,难以抽象出适合C++化的代码,且失去了Python的动态类型特性,丧失了Python的热更新机制。一旦需要修改源代码,便需要重新编译成C++进行发布,成本消耗巨大。因此,这种优化方案只适合业务逻辑已经固定的项目。
方案三、通过即时编译技术(Just in time,简称为JIT)来实现对Python语言的优化。但是,对于特定平台而言,目前苹果IOS系统不支持JIT,开启JIT会导致进程被操作系统结束。安卓系统尽管支持JIT,但是需要解释器支持进阶精简指令集机器(ARM)架构的跨平台编译,维护成本较高,且目前Pyston等开源JIT解释器实现已停止维护或对于ARM架构支持有限。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明至少部分实施例提供了一种字节码的优化方法、装置、存储介质、处理器及终端,以至少解决相关技术中所提供的Python程序运行性能的优化方案复杂度较高、实用性较差、性能提升有限的技术问题。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网易(杭州)网络有限公司,未经网易(杭州)网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711431847.5/2.html,转载请声明来源钻瓜专利网。





