[发明专利]程序代码优化方法、装置、电子设备及存储介质在审
申请号: | 202210241750.2 | 申请日: | 2022-03-11 |
公开(公告)号: | CN114637512A | 公开(公告)日: | 2022-06-17 |
发明(设计)人: | 陶超 | 申请(专利权)人: | 北京达佳互联信息技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 华进联合专利商标代理有限公司 44224 | 代理人: | 袁武 |
地址: | 100085 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序代码 优化 方法 装置 电子设备 存储 介质 | ||
本公开关于一种程序代码优化方法、装置、电子设备及存储介质。包括:获取待优化的程序代码文件;将所述程序代码文件中的程序代码进行划分,得到缓存类型代码和非缓存类型代码;根据所述非缓存类型代码中的目标代码与所述缓存类型代码间的调用关系,确定文件调用标识,并获取所述文件调用标识对应的预先存储的第一程序优化文件,作为所述缓存类型代码对应的优化文件;根据所述第一程序优化文件和根据所述非缓存类型代码中的所述目标代码得到的第二程序优化文件,得到优化后的程序代码文件。采用本方法,提高了程序代码优化效率。
技术领域
本公开涉及计算机技术领域,尤其涉及一种程序代码优化方法、装置、电子设备及存储介质。
背景技术
随着计算机技术的发展,在利用Android编译系统进行代码开发和编译时,需要对程序代码(例如,Java程序代码)文件进行优化,并把优化后的程序代码(例如,Java字节码)转换为dex字节码,生成Dex文件(Dex文件是Android上的应用程序apk中提取出来的可运行文件,也即优化后的程序代码文件)。
目前的程序代码优化方法,一般采用摇树优化(Tree Shaking)方法,首先找到程序入口点(或称为程序根节点),从程序入口点出发,对程序代码中包含的类、方法和字段进行遍历分析,标记其中必要的目标类、目标方法和目标字段。然后,计算机设备根据标记,识别程序代码中非必要的类,对其进行删除处理,以实现对程序代码的优化。
然而,目前的程序代码优化方法中,由于需要对程序文件中包含的所有类进行遍历分析,随着程序代码量的持续增大,程序代码优化方法耗时较长。
发明内容
本公开提供一种程序代码优化方法、装置、电子设备及存储质,以至少解决相关技术中程序代码优化方法耗时较长的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种程序代码优化方法,包括:
获取待优化的程序代码文件;
将所述程序代码文件中的程序代码进行划分,得到缓存类型代码和非缓存类型代码;
根据所述非缓存类型代码中的目标代码与所述缓存类型代码间的调用关系,确定文件调用标识,并获取所述文件调用标识对应的预先存储的第一程序优化文件,作为所述缓存类型代码对应的优化文件;
根据所述第一程序优化文件和根据所述非缓存类型代码中的所述目标代码得到的第二程序优化文件,得到优化后的程序代码文件。
在其中一个实施例中,所述程序代码文件中包含多个程序模块;所述将所述程序代码文件中的程序代码进行划分,得到缓存类型代码和非缓存类型代码,包括:
根据程序模块属性信息,将所述程序代码文件中包含的所述程序模块进行划分,得到目标类型程序模块和非目标类型程序模块;
将所述目标类型程序模块中包含的程序代码确定为缓存类型代码,将所述非目标类型程序模块中包含的程序代码确定为非缓存类型代码。
在其中一个实施例中,在所述根据所述非缓存类型代码中的目标代码与所述缓存类型代码间的调用关系,确定文件调用标识之前,所述方法还包括:
根据程序优化算法,识别所述非缓存类型代码中的目标代码以及所述目标代码对应的调用关系;所述调用关系包含所述目标代码与所述缓存类型代码间的被动调用关系;
根据所述被动调用关系,确定在所述缓存类型代码中被动调用的重分类代码;
为所述重分类代码配置程序入口规则,并根据所述程序入口规则,将所述重分类代码重新划分为所述非缓存类型代码中的目标代码。
在其中一个实施例中,所述获取所述文件调用标识对应的预先存储的第一程序优化文件,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京达佳互联信息技术有限公司,未经北京达佳互联信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210241750.2/2.html,转载请声明来源钻瓜专利网。